带有EF6和.edmx文件的.NET Core 2.0 API?

时间:2017-12-27 15:50:00

标签: c# entity-framework-6 asp.net-core-2.0 edmx

我想使用面向完整.NET框架的.NET Core 2.0构建API,以便我可以使用Entity Framework 6和.edmx文件。这可能吗?如何注入.edmx文件生成的DbContext?

我想这样做,因为我的项目使用了很多存储过程,我不想继续手动执行它们。我是.NET Core的新手,所以你能给我的任何帮助都会让我感到沮丧。

2 个答案:

答案 0 :(得分:0)

我明白你想要做的是使用新的.csproj文件格式,并定位任何经典的.NET框架,如.NET 4.5.2。

虽然项目本身工作正常,但您无法在“添加新项”对话框中选择“ADO.NET实体数据模型”,强制您从经典的.csproj项目复制现有的EDMX。

即使你这样做了,尝试更改设计器中的EDMX并按Save只会每次都给我一个TargetInvocationException,而不是更新模型。

查看日志文件,原因非常清楚:设计人员无法使用新的.csproj文件。

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: The "Content" rule is missing the "AutoGen" property.
    at Microsoft.Verify.Operation(Boolean condition, String unformattedMessage, Object arg1, Object arg2)
    at Microsoft.VisualStudio.ProjectSystem.VS.Implementation.PropertyPages.DynamicTypeBrowseObject.<<VSLangProj-FileProperties-get_IsCustomToolOutput>b__38_0>d.MoveNext()

所以现在,如果你想继续使用设计师,那你就不走运了。

答案 1 :(得分:0)

您可以将edmx放在针对dot net framework 3.5或更高版本的单独项目中,但是请记住禁用自动生成的代码,因为生成的代码不适用于dot net core。 在另一个针对点网核心的项目中,使用t4模板.tt。这些文件将通过文件系统路径读取edmx文件。