如何在 ASP.NET MVC 中将数据从原始 sql 查询映射到模型属性?
How to map data from a raw sql query to Model properties, in ASP.NET MVC?
参考这个线程How to use raw normal sql in ASP.NET MVC without linq?
我知道如何使用 DbContext 将数据映射到模型属性并在 Razor 视图中使用它们。但有时我确实需要使用复杂的原始 SQL 查询从现有数据库表中获取数据。从上面link我想我明白了。 SQL 给模型,这正是我需要的。但是,我的问题是,我需要在 DbContext class 中写什么?
这是来自上面的参考资料
static ArticlesDataContext dc = new
ArticlesDataContext(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
在控制器中(...我认为),
var arts = dc.ExecuteQuery<Art>(@"Select * from articles");
我猜 ArticlesDataContext class 是这样的
public class ArticlesDataContext : DbContext
{
public ArticlesDataContext() : base("name=ConnectionString")
{
}
public DbSet<Article> Articles { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
...
// something here to map the DB table columns
}
}
如果我需要 运行 Controller 中的原始 SQL 查询来获取数据,我该如何处理 DbContext class ,应该使用 EF 获取数据?我很困惑。
哦,是的,SQL 语句之前的“@”是做什么的?
我是 ASP.NET MVC 的新手,希望我已经把我的问题说清楚了。谢谢
DBContext 用于将数据实体(您的数据库 table)映射到模型(您创建的一些普通的旧 c# 对象)。即使您使用的是 SQL,您仍然希望创建一个模型来包含 SQL 查询的结果。现在您将 "arts" 定义为您的查询结果列表。因此,arts 可能是 IEnumerable<art>
类型,其中 art 是您创建的模型的名称。现在在您的 DBContext 中,执行如下操作:
public DbSet<art> arts { get; set; }
参考这个线程How to use raw normal sql in ASP.NET MVC without linq?
我知道如何使用 DbContext 将数据映射到模型属性并在 Razor 视图中使用它们。但有时我确实需要使用复杂的原始 SQL 查询从现有数据库表中获取数据。从上面link我想我明白了。 SQL 给模型,这正是我需要的。但是,我的问题是,我需要在 DbContext class 中写什么?
这是来自上面的参考资料
static ArticlesDataContext dc = new
ArticlesDataContext(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
在控制器中(...我认为),
var arts = dc.ExecuteQuery<Art>(@"Select * from articles");
我猜 ArticlesDataContext class 是这样的
public class ArticlesDataContext : DbContext
{
public ArticlesDataContext() : base("name=ConnectionString")
{
}
public DbSet<Article> Articles { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
...
// something here to map the DB table columns
}
}
如果我需要 运行 Controller 中的原始 SQL 查询来获取数据,我该如何处理 DbContext class ,应该使用 EF 获取数据?我很困惑。
哦,是的,SQL 语句之前的“@”是做什么的?
我是 ASP.NET MVC 的新手,希望我已经把我的问题说清楚了。谢谢
DBContext 用于将数据实体(您的数据库 table)映射到模型(您创建的一些普通的旧 c# 对象)。即使您使用的是 SQL,您仍然希望创建一个模型来包含 SQL 查询的结果。现在您将 "arts" 定义为您的查询结果列表。因此,arts 可能是 IEnumerable<art>
类型,其中 art 是您创建的模型的名称。现在在您的 DBContext 中,执行如下操作:
public DbSet<art> arts { get; set; }