我有一个类 看起来像这个:
public class Analyst
{
[Column("Internal_ID")]
public int ID { get; set; } // if this is named like the column, it works
[Column("DisplayName")]
public string Name { get; set; }
}
此对象正在像这样被填充( 下一部分属于从 DbContext 继承的类) :
public List<T> ExecProc<T>(string proc, Dictionary<string, object> params)
{
var parms = new List<SqlParameter>();
var sql = new StringBuilder();
sql.Append(sproc.StoredProcedure);
sql.Append(" "); // a space, that s all it is
foreach (var key in sproc.Parameters.Keys)
{
sql.Append(string.Format("{0},", key));
parms.Add(new SqlParameter(key, sproc.Parameters[key]));
}
if (sql[sql.Length - 1] == , ) // removing the trailing ,
{
sql.Remove(sql.Length - 1, 1);
}
return Database.SqlQuery<T>(sql.ToString(), parms.ToArray()).ToList();
}
返回的列表包含正确的行数( 或在此情况下的对象), 但是这些属性没有包含值 。 如果 proc 返回200 行, 那么我就会在列表中找到200 个对象, 但是没有一个对象包含值 。
我验证了字段名称与 [Column (“ name ”) 属性中的值之间没有不匹配之处。 如果我更改属性名称以匹配结果集中的字段名称, 那么效果会很好, 但如果我尝试用数据说明来绘制它们, 我似乎无法让它工作 。 请指出我错过了什么吗? 我确定它很简单 。
使用: Vision Studio 2010 United States SP1,.Net 4 SP1, EF 4.2.0(我遇到同样的问题,使用EF 4.3),所有这一切都只使用代码,没有为此使用绘图文件。