我有一个使用 EF 4.4(EF 5.0 的 .NET 4.0 版本)的网站,它针对现有数据库使用 Code First。我使用 Devart oracle 数据提供程序,由于模型类型的大小写问题,它需要一种解决方法。
它使 Devart 提供程序识别小写数据类型来解释架构。(或类似的规定)
这可以正常工作,直到该网站内的控件(基于 EF 4.1 Database First(也针对现有数据库)构建)尝试加载。Devart 提供程序似乎在网站上共享,它导致提供程序无法(正确)识别所有大写的数据类型的错误,因为以前的解决方法使其在 Code First 中工作。
是否有解决方法,或者我必须将 Database First 方法转换为 Code First?
编辑:这是相关的解决方法代码。我似乎丢失了从中获得它的论坛帖子。我相信它在 Devart 论坛上:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
var config = Devart.Data.Oracle.Entity.Configuration.OracleEntityProviderConfig.Instance;
config.Workarounds.ColumnTypeCasingConventionCompatibility = true;
... initialization code here ...
base.OnModelCreating(modelBuilder);
}
相关的错误是这样的:
System.Data.MetadataException: Schema specified is not valid. Errors:
Model.ssdl(205,6) : error 0040: The Type CHAR is not qualified with a namespace or alias. Only primitive types can be used without qualification.
Model.ssdl(206,6) : error 0040: The Type VARCHAR2 is not qualified with a namespace or alias. Only primitive types can be used without qualification.
还有很多,但它们都是相同的错误,具有不同的行和数据类型。