Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DbSet.SqlQuery是否忽略列映射?如何从sql查询中获取实体?_C#_Entity Framework - Fatal编程技术网

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
子句,其中别名与属性名称匹配。