我第一次尝试使用EF和Code First时遇到了麻烦,主要是因为我试图找到一种在Visual Studio中组织项目的有效方法。我想尝试Code First,所以我在一个单独的项目中描绘了一组类文件来描述entites,比如 MyApp.Models 。为了构建,我想我需要像Fluent API这样的东西,以确保数据库的创建方式与我期望的方式相同,这就是我遇到的第一个障碍。我认为唯一的方法是定义EF生成数据库的上下文。 那么创建上下文的代码应该在哪里定义?在像 MyApp.DAL 这样的单独项目中?我还想包括Asp.Net Identity 2.0,我认为它是定义上下文的一部分,因此包含在该步骤中。接下来我假设我需要实际调用代码,以便EF可以生成DB,该DB至少需要连接字符串的配置设置。最终我想要一个MVC应用程序,但接下来可能是一个控制台EXE,如 MyApp.ConsoleTest ?此外,我还喜欢为MVC应用程序提供服务的Web API项目。我认为这些可以用 MyApp.WebAPI 和 MyApp.ClientWebMVC 之类的东西来涵盖。也许以后我也可以创建 MyApp.ClientWPF ,这将利用Web API完成的工作。在此过程中,我还应该使用 MyApp.Common 或 Shared.Common 来保存日志记录和错误捕获等内容。
我认为围绕实体和背景的前几步是最让我兴奋的事情。我想尝试组织代码的数据部分,以便可以隔离客户端应用程序中的更改。是否有一个关于项目组织的良好教程,解决了EF Code First过于复杂的问题(即Unity of Work)?