c# - 如何使业务层与不同的模型一起工作?
问题描述
我正在用 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; }
}
然后呢????
解决方案
推荐阅读
- java - java容器对象交换数组方法
- javascript - 我的两个 Jquery 脚本相互干扰
- python - Tensorflow seq2seq 聊天机器人总是给出相同的输出
- bash - 如何检查是否在 bash 中传入了空的命名参数?
- node.js - 完成从 express 中删除 api 后如何发出另一个 post 请求?
- gdb - 有和没有 GDB 的环境布局差异
- javascript - socket.io 代码组织和计时 ES6
- php - 我的 CSS 文件在我的 PHP 文件中不起作用
- laravel - 在 Chrome 中按下浏览器后退按钮时,laravel 表单为空
- html - bootstrap(css):如何在页面中心布局登录表单