我有一个名为
的实体类[Serializable]
Public sealed class LayEntity : EntityBase
{
Public string Name {get;set;} // Getting mapped to the same column name in db table
}
在我的.cs文件中,我的查询为:
LayEntity lay = null;
Using(var context = new DBContext())
{
lay = context.LayTable.where(x=>x.id >1).Select (y=>y.Name).FirstOrDefault();
}
我的目的是存储检索提交到实体类的名称。 但是我得到一个编译时错误'不能隐式地将字符串转换为实体'。我需要做什么?
答案 0 :(得分:2)
错误消息已清除,您无法将string
值分配给LayEntity
类型的对象
可能你需要的是
LayEntity lay = null;
Using(var context = new DBContext())
{
lay = context.LayTable.FirstOrDefault(x=>x.id >1);
if(lay != null)
{
lay.Name; // use name here.
}
}
注意,我已删除Where
方法,因为在这种情况下它是多余的。
答案 1 :(得分:2)
你最有可能这样做:
lay = context.LayTable
.Where(x=>x.id >1)
.Select (y=>new LayEntity (){Name=y.Name})
.FirstOrDefault();
或者这个:
lay = context.LayTable.where(x=>x.id >1).FirstOrDefault();
甚至这个:
lay = context.LayTable.FirstOrDefault(x=>x.id >1);
如果您期望单个值,我会这样做:
lay = context.LayTable.SingleOrDefault(x=>x.id >1);