c# - 在多个应用程序(旨在同时访问一个数据库)之间共享一个 Entity Framework 4 数据模型的最佳方式是什么?

标签 c# visual-studio entity-framework

我的一个项目(用 VS 术语来说是“解决方案”)由一个 ASP.Net 4 动态数据实体 Web 应用程序、一些 WinForms 应用程序、一些 WPF 应用程序和一些服务组成。它们都旨在与一个 SQL Server 数据库一起工作,该数据库从 Entity Framework 4 模型生成为每个类型的表,具有大量继承和多个自引用关系。

我最好把模型放在哪里?在一个单独的类库中,在每个项目中的副本,在一个项目中等。我应该最好使用什么命名?将其命名为 MySolution.MyClassLibrary.MySolutionEntities 或仅命名为 MySolutionEntities 或仅命名为 MySolution 是个好主意吗?您能分享关于这个主题的任何有用经验吗?

最佳答案

将您的模型和任何支持类(如部分类中的附加实体功能、存储库接口(interface)和实现以及验证)放入单独的类库中。这是迄今为止共享该功能的最佳方式。

将其编译到自己的程序集中,您可以从任意数量的项目中引用它 - 您的 ASP.NET web 应用程序、ASP.NET MVC 应用程序、WPF 和 Winforms 应用程序,无论您在做什么 - 只需添加对 EF 模型程序集的引用。

至于命名 - 使用有意义的东西。不要将它“绑定(bind)”到特定的项目或解决方案——给它起一个描述性的名称。模型是什么——其中包含什么数据?

您可以将其命名为类似 YourCompany.HumanResources.DataModel 或其他任何名称 - 不要将其特定于一个项目,因为您可能会在各种项目中多次使用它。

关于c# - 在多个应用程序(旨在同时访问一个数据库)之间共享一个 Entity Framework 4 数据模型的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2795607/

相关文章:

javascript - 异步 javascript 完成后加载网页并解析 html

c# - 等待文件被进程释放

c# - MySQL 本地/在线服务器不会响应 C#/.NET

c++ - 使用 CMake、Ninja 和 clang 为 VS 2019 构建项目

c# - MySQL Entity Framework 尾随空格

c# - 其中包含 List<> 的模型..这如何与 Entity Framework 一起工作?

C# 方法调用无法将实现接口(interface)的类强制转换为所述接口(interface)

c# - 当前不会命中 VS 2010 远程调试器断点。没有为该文档加载任何符号

c++ - Visual Studio C++ 头文件

c# - 在 Entity Framework 7 中显式映射接口(interface)成员