【发布时间】:2012-02-15 00:42:13
【问题描述】:
我有 50 个这样的“类型模型”(我这样称呼它们),它们看起来像这样:
public class BookType{
public Guid Id { get; set; }
public string Value1 { get; set; }
public string Value2 { get; set; }
}
public class CarType{
public Guid Id { get; set; }
public string Value1 { get; set; }
public string Value2 { get; set; }
}
public class PersonType{
public Guid Id { get; set; }
public string Value1 { get; set; }
public string Value2 { get; set; }
}
所以所有这些模型对于类名都是相同的接受,所有这些模型都将与其他模型有关系。
我需要设计一个功能来提供 CRUD 操作。我想在一个控制器和 1 个用于编辑的视图、1 个用于创建和 1 个用于删除的视图中完成这一切。
我们首先使用 EF 代码进行数据访问。所以我必须做类似的事情:
PersonType tp = new PersonType()
DbContext.PersonTypes.Add(pt)
但是,PersonTypes 也可以是 BookType 类型。我玩了一些反射和接口,但没有成功。
没有什么最佳实践吗?
有人有建议吗?或示例?
【问题讨论】:
-
“Value1”和“Value2”是代码异味。仔细查看您的对象模型,看看您是否可以更明确地了解对象属性。然后你可能想要实现一个 table-per-type 继承方案(谷歌它,你会发现很多)。
-
您是否使用 value1, value2 作为示例,即。每个类存储不同的数据,或者是实际属性称为 value1 等
标签: asp.net-mvc oop ef-code-first