首页 > 解决方案 > 是否可以使用 .Net EF Core 从现有数据库加载部分对象方案?

问题描述

我有一个使用 .net ef 创建的数据库表,其方案如下:

任务(id、标题、描述、状态)

我目前有一个完全使用这个方案的服务器,并且有一个代表这个对象的类

public class Task {

    [Key]
    public Guid Id { get; set; }

    public string Title { get; set; }

    public string Description { get; set; }

    public string Status { get; set; }

}

我现在想在另一个只需要 Id 和 Status 的项目上设置另一个单独的统计服务器(只读

public class Task {

    [Key]
    public Guid Id { get; set; }

    public string Status { get; set; }

}

是否可以使用.net ef 核心将上下文与不代表完整方案的对象链接到我现有的数据库表?

编辑:我添加了一个图像来更好地表示所需的情况 在此处输入图像描述

标签: c#.net-coreentity-framework-core

解决方案


如果我正确理解您,那么您有一个数据库和两个使用该数据库的项目。第一个项目处理任务,第二个项目获取有关任务的统计信息。在这种情况下,最好将两个项目组合成一个解决方案。在解决方案中,您应该使用您的实体(域模型)提取类库。作为您的实体的示例:

public class Task {

    [Key]
    public Guid Id { get; set; }

    public string Title { get; set; }

    public string Description { get; set; }

    public string Status { get; set; }

}

您还应该将访问层(dbContext、dbSet、存储库等)提取到单独的类库中。

两个项目都应该使用这两个库。每个项目都应该有自己的一组视图类。作为视图类的示例是:

public class Task {

    public Guid Id { get; set; }

    public string Status { get; set; }

}

您可以将域模型(实体)映射到自己查看模型或使用 Automapper 之类的东西(第二种情况更好)。


推荐阅读