MVC DbContext拉出所有模型

时间:2016-12-27 08:24:36

标签: asp.net-mvc entity-framework asp.net-mvc-4

我正在使用数据库第一种方法。 EDMX文件为我生成了默认的Dbset(TableName)。

myDbContext.Table1.ToList();
myDbContext.Table2.ToList();

我们可以有一个ModelView类,可以用一行拉出两个表吗? 而不是

Table1=myDbContext.Table1.ToList();
Table2=myDbContext.Table2.ToList();

我们可以喜欢

吗?
ModelView=myDbContext.ModelView;

更新

  public partial class ProductTb
{
    public string ProductID { get; set; }
    public string ProductArticleNumber { get; set; }
    public string ProductName { get; set; }

}

  public partial class ProductTbTWO
{
    public string ProductID { get; set; }
    public string ProductArticleNumber { get; set; }
    public string ProductName { get; set; }

}

  public class ProductModelView
{
   public ProductTb{get;set;}
public ProductTbTWO{get;set}

}

2 个答案:

答案 0 :(得分:1)

创建DbContext的部分类并添加自定义代码。

.pops{
display:none;
height: 100%;
width: 100%;
background: #fff;
position:absolute;
z-index:1;
top:0;
}

并使用public partial class MyDbContext { private MyDbContext(string contextName) : base(contextName) { } public static MyDbContextCreate() { return new MyDbContext(ContextName); } public ProductModelView ModelView {// Get ProductTb and ProductTbTWO} } var myDbContext= MyDbContext.Create()

  

但我不建议做类似的事情,使用公共方法添加服务类来获取代码,数据层不应该处理视图模型

答案 1 :(得分:0)

我更喜欢使用静态类:

public static class Utilities
{
    public static ProductModelView getProductViewModel()
    {
        using (var db = new myDbContext()
        {
            var vm = new ProductModelView();
            vm.ProductTb = db.ProductTb.ToList();
            vm.ProductTbTWO = db.ProductTbTWO.ToList();
            return vm;
        }
    }
}
你可以这样称呼它:

var vm = Utilities.getProductViewModel();