我需要使用SqlQuery的子类字段

时间:2017-02-19 22:10:07

标签: c# sql-server entity-framework

我使用EF 6.我有一个产品基类。我使用SqlQuery但我也需要子类字段。我怎么能这样做?

public class Product{
    public int ProdId{get;set;}
    public string ProdName{get;set;}
}

public MySubProd1:Product{
    public string MySubProd1{get;set;}
}

public MySubProd2:Product{
     public string MySubProd2{get;set;}
}

    public DbRawSqlQuery<Product> GetSql(int prodId,string[] fields)
    {

        var sql = "SELECT {0} FROM Products WHERE ProdId={1}";
        //i need here MySubProd1, MySubProd2 fields too
        return _db
                .Database
                .SqlQuery<Product>(sql, String.Join(",", fields), prodId);

    }

1 个答案:

答案 0 :(得分:0)

使用EF,您只需执行此操作:

var query = from p in context.Products.OfType<MySubProd2>() select p;

有关如何构建模型的详细信息,请参阅this文章。