我有一个现有的数据库,可以说我无法更改。该数据库中的表格之一具有以下结构:
Table Foo
FooKey UNIQUEIDENTIFIER
ParentFooKey VARCHAR(36)
因此,本质上每行都可以与同一表中的父有关系。
我试图使用EF Fluent API映射这种关系,但由于两列之间的类型差异而遇到麻烦。
我尝试在我的FOO类中创建一个属性,该类别仅将ParentFooKey
解析到GUID中,但是当我尝试在Fluent API中使用它时,我会遇到错误,因为该属性未映射在EF中。
另外,还有一种方法可以将ParentFooKey
映射为EF中的GUID?ParentFooKey
列中的值始终是guid或null的字符串表示。
据我所知,你不能。您必须查询所需的东西,例如:
YourContext.YourDbSet.Where(x=>x.FooKey == parentKey)
您还可以创建一种扩展方法,以将其转换为GUID,以使您的生活更轻松。这样的东西:
public Guid ToGuidOrDefault(this string s){
Guid guid = Guid.Empty;
Guid.TryParse(s, out guid){
return guid;
}