默认情况下,如何使用Entity Framework在C#中使用Join进行数据库联接-首先,因为我正坐在数据库中进行此查询
public List <clsModel> list ()
{
strQuery = "select mode.modModel, bra.braIdBrand from tblModel mode join tblBrand bra on bra.braIdBrand = mode.braIdBrand";
List <clsModel> lstModel = db.Database.SqlQuery <clsModel> (strQuery) .ToList ();
return lstModel;
}
但总是会出现此错误
其他信息:数据读取器与 指定的“ CadastroAtivo.Models.clsModelo”。该类型的成员, 'modIdModelo',在数据读取器中没有对应的列 同名。
我想将模板各自的标签放在一起,但是只有模板和标记为空白(空),我不知道为什么。
类模型:
public class clsModel
{
[Key]
public int modIdModel {get; set; }
[Required (ErrorMessage = "Enter Template Name")]
[StringLength (40, ErrorMessage = "BigName!")]
[MinLength (3, ErrorMessage = "Enter a name with at least 3 digits")]
[Display (Name = "Model")]
public string modModel {get; set; }
[Display (Name = "Mark")]
[Required (ErrorMessage = "Select brand")]
public int braIdBrand {get; set; }
[ForeignKey ("braIdBrand")]
public clsBrand Brand {get; set; }
}
经典品牌:
public class clsBrand
{
[Key]
public int braIdBrand {get; set; }
[Required (ErrorMessage = "Report a brand"]]
[Display (Name = "Brand")]
[StringLength (50, ErrorMessage = "BigName!")]
[MinLength (3, ErrorMessage = "Tag name is short")]
public string braBrand {get; set; }
public virtual ICollection <clsModel> Model {get; set; }
}
有人可以帮助我吗?
答案 0 :(得分:2)
对dbcontext进行疯狂的假设,但是您可以尝试以下方法:
var results = from model in db.clsModels
join brand in db.clsBrands on model.brand equals brand into g
select new { Model = model, Brands = g };
(目前无法通过我的工作站或dbcontext进行测试,但希望您能理解)
使用Linq
的优势在于它是强类型的。您可以在编译过程中轻松找到错误。
答案 1 :(得分:-1)
您尝试过吗:
public List<clsModel> list()
{
strQuery = "select mode.modModel, bra.braIdBrand from tblModel mode join tblBrand bra on bra.braIdBrand = mode.braIdBrand";
IEnumerable<clsModel> result = db.ExecuteQuery<clsModel> (strQuery);
return result.ToList();
}