如何在实体框架代码中先使用数据库视图,
发布于 2017-05-31 01:03:00
这可能是一个更新,但首先要在EF代码中使用视图,只需将表(“NameOfView”)添加到类的顶部,所有这些都应该可以正常工作,而不必经历其他人正在经历的所有循环。此外,您还必须将其中一列报告为键列。下面是我实现它的示例代码。
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace SomeProject.Data
{
[Table("SomeView")]
public class SomeView
{
[Key]
public int NameID { get; set; }
public string Name { get; set; }
}
}
下面是上下文的样子
using System.Data.Entity;
namespace SomeProject.Data
{
public class DatabaseContext : DbContext
{
public DbSet<SomeView> SomeViews { get; set; }
}
}
发布于 2013-10-10 11:54:53
如果您想要的只是一堆反规范化的对象,那么您可能只是在DbContext
类中创建了一个仅限get的公共IQueryable<TDenormolized>
属性。
在get
中,您将返回一个Linq结果,以将反规范化的值投影到反规范化的对象中。这可能比编写DB视图更好,因为您正在编程,您不受仅使用select
语句的限制。而且它是编译时类型安全的。
只需小心不要触发枚举,比如ToList()
调用,这会破坏延迟的查询,最终可能会从数据库中返回一百万条记录,并在应用程序服务器上对它们进行过滤。
我不知道这是不是正确的方法,但我试过了,它对我很有效。
https://stackoverflow.com/questions/7461265
复制相似问题