实体框架相当新。我们首先使用代码来创建具有迁移脚本的实体(以创建数据库)。
存储过程用于从数据库返回数据。这些过程也在迁移脚本中创建。
但是,存储过程返回的结果不会直接映射到我们模型中的实体。我们所有的样本都通过映射到实际上并不能满足我们需求的实体。
实现这一目标的最佳方法或建议是什么?
创建一组替代模型,并以某种方式映射到程序返回结果中的那些模型?
答案 0 :(得分:0)
您可以为存储过程注册复杂模型以进行映射,而不必将它们作为数据库实体。
在你的DbContext中你应该已经覆盖OnModelCreating并且可以注册你的复杂模型进行映射
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//Whatever code you already have here...
modelBuilder.ComplexType<YourComplexModelHere>();
base.OnModelCreating(modelBuilder);
}
您可以在此处注册任意数量的复杂模型,以便映射存储过程和函数,但是您可能在模型中没有导航属性,因此它们必须是扁平化类。