我真的希望有人可以帮助我。
我有以下sql语句(只是用''替换了实际列值。)
string sqlstatement = @"
SELECT
'a' as Street,
1 as StreetNumber,
'a' as StreetAddition,
'a' as Family,
'a' as FirstNames,
'a' as VisitedBy
FROM Person pOuter
INNER JOIN House h
ON pOuter.HouseId = h.Id
INNER JOIN Street s
ON h.StreetId = s.Id
AND s.TerritoryID = (SELECT TOP 1 Id FROM Territory WHERE Number=" + selectedEntry.Number + @" AND CityId = (SELECT TOP 1 Id FROM City WHERE Name ='" + selectedEntry.City.Trim() + @"'))
GROUP BY
pOuter.LastName,
pOuter.HouseId
ORDER By Street ASC, StreetNumber ASC, StreetAddition ASC, Family ASC, FirstNames ASC";
并尝试执行它并使用以下命令生成强类型序列。
database.ExecuteStoreQuery<HtmlAddressGenerator.Entry>(sqlstatement);
其中database是我的实体框架数据库上下文(左右)。
到达此行后,调试器会抛出错误。
如果在SQL Management Studio中执行,则sql语句本身可以正常工作。 我究竟做错了什么?它一直有效,直到我安装了win 8.也许它与win 8无关,为什么这个代码适用于XP机器?但这不是问题。我只是想知道是否有针对该问题的解决方法或我监督过某事。很重要?我该怎么做才能执行代码?请帮忙。
答案 0 :(得分:1)
此处描述了此问题的解决方案Entity Framework 4 ExecuteStoreQuery<T> -- unable to results to object-type property
错误是HtmlAddressGenerator.Entry是一个结构,没有默认的constrcutor。因此,将结构体更改为类并添加默认构造函数已解决了我的问题。