我正在创建一个C#MVC Net Core应用程序。
阅读一些书籍,有些则告诉他们在自己的项目中编写数据库模型。其他人则说不要在自己的项目中使用数据库模型。只是好奇将模型放置在自己的项目中会带来什么好处/优势? 问题“不需要反向询问。我只是问分离模型的好处? (该问题不是基于观点的,也不会提出建议,只是通过这种方式可以带来功能上的好处)
答案 0 :(得分:1)
将数据库模型放置在单独的项目中的主要优点是,如果要编写一个支持多个数据库系统来存储数据的应用程序。在这种情况下,您可能会有这样的情况(在程序集GregThomas.MyApp.DataAccess.Common
中:
namespace GregThomas.MyApp.DataAccess.Common
{
public interface ISprocketRepository
{
Task<IEnumerable<Sprocket>> GetAllAsync();
}
public class Sprocket
{
// All the properties of a sprocket would be here
}
}
然后,您要为每个要支持的数据库提供者提供单独的程序集,例如,程序集GregThomas.MyApp.DataAccess.SqlServer
:
namespace GregThomas.MyApp.DataAccess.SqlServer
{
public sealed class SprocketRepository : ISprocketRepository
{
Task<IEnumerable<Sprocket>> ISprocketRepository.GetAllAsync()
{
// Code to retrieve sprockets from a SQL Server database here
}
}
}
您的每个数据库特定程序集都将引用 .Common 程序集,以便能够实现适当的接口并访问模型。