【问题标题】:C# Entity Framework and Business LogicC# 实体框架和业务逻辑
【发布时间】:2013-09-14 16:31:35
【问题描述】:

我有一个数据库,我正在通过 EF 访问它。

public partial class Project
{
    public int ProjectID { get; set; }
    public string Name { get; set; }

    public virtual ICollection<ProjectAssets> ProjectAssets { get; set; }
}

public partial class ProjectAssets
{
    public int MappingID { get; set; }
    public int ProjectID { get; set; }
    public int AssetID { get; set; }

    public virtual Project Project { get; set; }
    public virtual Asset Asset { get; set; }
}

public partial class Asset
{
    public int AssetID { get; set; }
    public string Name { get; set; }
    public short Type { get; set; }

    public virtual ICollection<ProjectAssets> ProjectAssets { get; set; }
}

所以,我的程序当时只有 1 个活动的Project。 我希望能够绑定到Project 并以树或其他方式显示所有Assets,并且我希望能够创建新的Asset 或添加现有的Asset 属于其他项目的内容。 如果我将使用生成的实体,我将无法管理所有这些,所以我需要一些规则。我已经找到了很好的 impl。的存储库,但仍然不知道如何创建规则。 我是否需要创建类似的东西:

public class WorkProject : Project
{
    public WorkProject(Project projject){...}
    WorkAsset CreateAsset(){...}
    void AddAsset(Asset asset){...}
}

【问题讨论】:

  • 你的问题是什么?
  • 如何限制对实体的访问?

标签: c# .net entity-framework data-access-layer business-logic


【解决方案1】:

据我了解您的问题,您希望控制与项目对象相关的实体图。您可以保持存储库层不变,并在其上放置另一层(业务层)以强制执行规则。

【讨论】:

    猜你喜欢
    • 2012-03-08
    • 2011-04-15
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    相关资源
    最近更新 更多