0

我真的希望有人可以帮助我。

我有以下 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机器上工作?但这不是问题。我只是想知道这个问题是否有任何解决方法,或者我是否监督过某事。很重要?我应该怎么做才能执行代码?请帮忙。

4

1 回答 1

1

此处描述了此问题的解决方案Entity Framework 4 ExecuteStoreQuery<T> -- 无法返回对象类型属性

错误是 HtmlAddressGenerator.Entry 是一个结构并且没有默认构造函数。因此将结构更改为类并添加默认构造函数已经解决了我的问题。

于 2013-04-07T17:10:14.057 回答