实体框架之间的关系不同类型的列之间



我有一个现有的数据库,可以说我无法更改。该数据库中的表格之一具有以下结构:

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;
}

相关内容

  • 没有找到相关文章

最新更新