我决定将我的项目之一移至Entity Framework 7(rc1-final)。我的目标是SQL Server,并且EntityFramework.MicrosoftSqlServer
还安装了软件包。
我只有一个问题:似乎无法执行自定义SQL查询才能从数据库中获取某些对象。
DatabaseFacade
对象(可以通过DbContext.Database
属性访问)提供了扩展方法ExecuteSqlCommand
(不返回任何内容),但不提供SqlQuery<T>
允许获取对象的方法。两种方法在旧的EF 6中都可用,但是新的EF 7仅声明第一个。
因此,SqlQuery<T>
方法是否仍在这里(但已移动/重命名),或者已从新的EF实施中完全删除了?
当然,绝对有可能以冗长的方式(使用SqlCommand
及其ExecuteReader
方法)来解决它,但我宁愿避免使用它。
EntityFramework.Relational
公开以下扩展方法;
public static IQueryable<TEntity> FromSql<TEntity>(
[NotNull] this IQueryable<TEntity> source,
[NotNull] [NotParameterized] string sql,
[NotNull] params object[] parameters)
where TEntity : class
因此,您可以执行此操作;
myDatabaseContext.Customers.FromSql("SELECT * FROM Customers WHERE Name='p0'", "timothy");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句