从 SQL 查询添加额外列时,Class 出现绑定错误
Binding error from Class when adding extra column from SQL query
我正在使用 Entity Framework 从 SQL 中检索数据。
我有两个使用相同 class 绑定的 razorpages
- Razorpage 1. 使用 returns 来自 table
的所有可用列的查询
- Razorpage 2. 使用查询将新列添加到不在 table
中的结果中
看起来像这样
result = await _context.tblTime.FromSql("...").ToListAsync();
所以在 2:nd 中,查询正在向结果中添加一个不在 table 中的列。
如果我将列作为 属性 添加到我的 Class 中,我会收到错误消息:'FromSql' 的结果中不存在所需的列 'Rsp'从我的第一个 razor 页面操作,而不是从 2:nd razorpage.
因此第一个 razorpage 生成错误,因为列 "Rsp" 在 class 中但不在 table 中且不在结果集中
我还注意到我需要在 class 中将 Rsp 声明为虚拟才能获得正确的值
public virtual string Rsp { get; set; }
我怎样才能让这两个 razorpages 都起作用?
使用 Visuas Studio 2017 v15.5.2 和 Asp.NET Core v2
为了回答您的评论,我将举一个从原始 sql 查询填充视图模式的示例。
假设您有这样的视图模型:
public class TimeViewModel {
public string Rsp { get; set; }
public int Minutes { get; set; }
public int Seconds { get; set; }
}
然后您可以 select 从您的原始查询到您的视图模型的新列表:
result = await _context.tblTime.FromSql("...").ToListAsync();
List<TimeViewModel> viewModel = result .Select(a => new TimeViewModel()
{
Minutes = a.Minutes,
Seconds = a.Seconds
}).ToList();
您可以使用 Rsp 字段添加额外的 timeViewModel 行 no 没有问题。
然后 return 你的视图模型到视图。
我正在使用 Entity Framework 从 SQL 中检索数据。
我有两个使用相同 class 绑定的 razorpages
- Razorpage 1. 使用 returns 来自 table 的所有可用列的查询
- Razorpage 2. 使用查询将新列添加到不在 table 中的结果中
看起来像这样
result = await _context.tblTime.FromSql("...").ToListAsync();
所以在 2:nd 中,查询正在向结果中添加一个不在 table 中的列。
如果我将列作为 属性 添加到我的 Class 中,我会收到错误消息:'FromSql' 的结果中不存在所需的列 'Rsp'从我的第一个 razor 页面操作,而不是从 2:nd razorpage.
因此第一个 razorpage 生成错误,因为列 "Rsp" 在 class 中但不在 table 中且不在结果集中
我还注意到我需要在 class 中将 Rsp 声明为虚拟才能获得正确的值
public virtual string Rsp { get; set; }
我怎样才能让这两个 razorpages 都起作用?
使用 Visuas Studio 2017 v15.5.2 和 Asp.NET Core v2
为了回答您的评论,我将举一个从原始 sql 查询填充视图模式的示例。
假设您有这样的视图模型:
public class TimeViewModel {
public string Rsp { get; set; }
public int Minutes { get; set; }
public int Seconds { get; set; }
}
然后您可以 select 从您的原始查询到您的视图模型的新列表:
result = await _context.tblTime.FromSql("...").ToListAsync();
List<TimeViewModel> viewModel = result .Select(a => new TimeViewModel()
{
Minutes = a.Minutes,
Seconds = a.Seconds
}).ToList();
您可以使用 Rsp 字段添加额外的 timeViewModel 行 no 没有问题。
然后 return 你的视图模型到视图。