【问题标题】:Models in a separate C# Project or Same?单独的 C# 项目中的模型还是相同?
【发布时间】:2019-07-20 18:32:13
【问题描述】:

我正在创建一个 C# MVC Net Core 应用程序。

阅读了一些书籍,有些人告诉他们要在自己的项目中编写数据库模型。其他人则说不要在他们自己的项目中使用数据库模型。只是好奇将模型放置在自己的项目中会带来哪些好处/优势? 问题“不需要反过来问”。我只是问分离模型的好处? (这个问题不是基于意见的,也不会要求推荐,只是这种方式的功能优势)

【问题讨论】:

标签: c# entity-framework .net-core asp.net-core-mvc


【解决方案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 程序集,以便能够实现适当的接口并访问模型。

【讨论】:

    猜你喜欢
    • 2018-02-17
    • 2022-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    相关资源
    最近更新 更多