首页 > 解决方案 > 如何使业务层与不同的模型一起工作?

问题描述

我正在用 C# 设计一个 .Net 项目的架构。我会用EF。我想设置一个 MVC 模式架构。虽然我将从第一个模型实现开始,但我可能不得不使用与原始模型非常相似的其他模型。

我显然想实现一个单一的业务层,它可以理想地与两个模型实现一起工作。

所以我想在某些时候我将不得不高度依赖接口。

通常,我以这种方式构建我的实体和上下文:

    public class Foo
    {
     public int Id { get; set; }
     public string Name { get; set; }
... other properties
    }

    public class Bar
    {
     public int Id { get; set; }
     public string Name { get; set; }
    public virtual  Foo Fooo { get; set; }
... other properties
    }
    ...
    public class MyContext : DbContext
    {
    ...
    }

现在,就我而言,我将假设 2 个不同的模型。在之前编写的 Foo 和 Bar 类之上,我将拥有:

 public class Foo2
    {
     public int Id { get; set; }
     public string Name { get; set; }
... other properties
    }

    public class Bar2
    {
     public int Id { get; set; }
     public string Name { get; set; }
    public virtual Foo Fooo { get; set; }
... other properties
    }
    ...
    public class MyContext2 : DbContext
    {
    ...
    }

现在如何设置可以处理 MyContext 或 MyContext2 的单个业务层?

我想第一步是为 For Foo / Foo2 和 Bar / Bar2 创建接口:

public interface IFoo
    {
     int Id { get; set; }
     string Name { get; set; }
    }

    public interface IBar
    {
     int Id { get; set; }
     string Name { get; set; }
     IFoo Fooo { get; set; }
    }

然后呢????

标签: c#model-view-controllerinterfacen-tier-architecture

解决方案


推荐阅读