【发布时间】:2021-07-16 04:39:27
【问题描述】:
我有一个使用 ASP.NET CORE 3.1(使用 Razor Pages)构建的 Web 应用程序。我正在使用 Entity Framework Core(代码优先)进行数据访问。一切都在同一个项目中,我们称之为 MyProject.Web。
现在我必须创建一个使用相同数据库的控制台应用程序。我的计划是将它作为一个新项目添加到与 Web 应用程序相同的解决方案中:MyProject.Console。
由于控制台应用程序将使用相同的数据库,在我看来,在解决方案中创建另一个项目 MyProject.Data 似乎是个好主意,该项目将包含用于数据库访问的实体和所有代码。这样,Web 应用程序和控制台应用程序都可以使用相同的代码进行数据访问。
这是个好主意吗?
我已经遇到了一些问题……我的实体已将验证实现为属性(来自 System.ComponentModel.DataAnnotations;)。但是,我还创建了一个自定义验证属性,要将其应用于实体,我还需要在 MyProject.Data 中具有验证属性类。此验证属性实现接口 IClientModelValidator 以便我的自定义验证也可以应用于客户端。 IClientModelValidator 接口位于 Microsoft.AspNetCore.Mvc.ModelBinding.Validation 命名空间中。首先,我不知道如何将必要的框架(Microsoft.AspNetCore.App)添加到项目MyProject.Data中。其次,无论如何添加该框架我似乎有点奇怪,因为这应该只是一个数据访问项目。
任何关于如何解决这个问题的建议,或者即使它是一个好主意,都非常欢迎。
【问题讨论】:
-
只是补充一下,请参阅stackoverflow.com/questions/49598884/… 了解有关分离 EF Core 的更多详细信息
标签: asp.net .net asp.net-core entity-framework-core