繁体   English   中英

实体框架核心-调试映射

[英]Entity Framework Core - Debugging Mapping

我有一个现有的数据库和一个现有的域,它最初是使用nHibernate创建和访问的,现在正将其移至Entity Framework Core。

我首先尝试访问域的一个元素(不幸的是,它与许多其他实体紧密耦合)。 该域非常旧并且是整体的,不能作为本练习的一部分进行修改。

我收到很多类似的错误:“无法映射属性'DateTimeFormatInfo.AbbreviatedDayNames',因为它的类型为'String []',它不是受支持的原始类型或有效的实体类型。要么显式映射此属性,要么,或者使用'[NotMapped]'属性或使用'OnModelCreating'中的'EntityTypeBuilder.Ignore'忽略它。”

除了.NET类型映射外,很难找出映射失败的确切位置。 是否有工具或方法可以轻松识别出故障部分。

我尝试了以下操作:-SQL跟踪,没有任何问题,因为它在应用程序中失败了。 -异常仅给出该错误,没有内部异常或其他信息。 -是否在整个解决方案中使用文本搜索了元素类型为“ DateTimeFormatInfo”的实体。 没有了。 -是否在整个解决方案中进行了文本搜索,以查找包含或使用属性/功能AbbreviatedDayNames的实体,也没有执行任何操作。

因此,我被困在试图准确定位哪个实体映射失败。

另外,我很想使用EF Fluent API进行任何映射。

您正在搜索错误的文本。
DateTimeFormatInfo.AbbreviatedDayNames不是属性。 相反,您应该尝试查找类型为'String []'的所有属性,因此请在Entites中进行搜索。
错误本身说明问题出在哪里。 EF无法将字符串数组映射到任何数据库类型。

我刚才也遇到了与上述完全相同的错误,即将应用程序迁移到Entity Framework核心

无法映射属性'DateTimeFormatInfo.AbbreviatedDayNames',因为它的类型为'String []',它不是受支持的原始类型或有效实体类型。 要么显式映射此属性,要么使用'[NotMapped]'属性或通过'OnModelCreating'中的'EntityTypeBuilder.Ignore'忽略它。”

就我而言,问题与具有CultureInfo属性类型的实体有关。

System.Globalization.CultureInfo.DateTimeFormatDateTimeFormatInfo类型,并且是我在此情况下描述的错误属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM