3

我有一个正在尝试从 MVC5/EF6 升级到 MVC6/EF7 的现有应用程序。我们动态创建了一些 SQL 表,因此,我们利用了

System.Data.Entity.Database.SqlQuery

方法自动映射到我们在整个应用程序中使用的实体。

这种方法在 EF7 中似乎已经消失(即不是 Microsoft.Data.Entity.Infrastructure.Database 的一部分)(或尚未实现)。是否有计划在 EF7 中重新实现此方法,或者是否有其他方法可以实现此目的?在我们弄清楚这一点之前,我们的项目有点死气沉沉。

2015 年 5 月 20 日编辑

我一直在尝试使用 FromSql 进行这项工作,因为这是 Beta4 中可用的功能,但无论我尝试使用何种连接字符串、参数组合,我都会不断收到不同版本的“@xxxvariable 附近的语法不正确”消息。

var results = Set<AssessmentResult>().FromSql("dbo.GetAssessmentResults @FieldA='Data1', @FieldB='Data2', @UserId = 2303"); 
var results2 = Set<AssessmentResult>().FromSql("dbo.GetAssessmentResults @FieldA= {0}", intData); 

这两个调用都导致

"Incorrect syntax near '@FieldA'" 

有任何想法吗?

4

1 回答 1

2

我们最近.FromSql()DbSet. 它还有一个额外的好处,就是您可以在它之上继续编写 LINQ。

var customers = db.Customers
    .FromSql("SELECT * FROM Customer")
    .Where(c => c.Name.StartsWith("A"));
于 2015-04-02T16:22:07.713 回答