C# DbSet.SqlQuery是否忽略列映射?如何从sql查询中获取实体?
我有一个无法更改的数据库。其中一个表的列名是C# DbSet.SqlQuery是否忽略列映射?如何从sql查询中获取实体?,c#,entity-framework,C#,Entity Framework,我有一个无法更改的数据库。其中一个表的列名是MFG-DATE(带连字符)。我为这张桌子上了课: public class tblPreNeltec { [Key] public string LotNo { get; set; } //... [Column("MFG-DATE")] public DateTime? MFG_DATE {get; set; } } 所以我会想,当我试图从数据库中取出tblPreNeltecs时,它应该能工作,对吗?然而当
MFG-DATE
(带连字符)。我为这张桌子上了课:
public class tblPreNeltec
{
[Key]
public string LotNo { get; set; }
//...
[Column("MFG-DATE")]
public DateTime? MFG_DATE {get; set; }
}
所以我会想,当我试图从数据库中取出tblPreNeltec
s时,它应该能工作,对吗?然而当我跑的时候
var lots = db.tblPreNeltecSet.SqlQuery("SELECT * FROM tblPreNeltec WHERE LotNo LIKE @LotNo", new SqlParameter("@LotNo", LotNo)).ToList();
我得到一个错误:
The data reader is incompatible with the specified 'CofC.Models.tblPreNeltec'. A member of the type, 'MFG_DATE', does not have a corresponding column in the data reader with the same name.
但它不应该是
制造日期
!我使用了列
属性,它应该查找MFG-DATE
!对吗?我做错了什么?关于这一点,我如何从数据库中按批号检索一组tblPreNeltec
s,因为它们的列名称中有一个连字符?映射不被SQL
方法考虑。使用SQL有什么特殊原因吗?如果确实需要,只需提供显式列SELECT
子句,其中别名与属性名称匹配。