.net - 使用 EF 从查询中读取新字段
问题描述
我在 dbcontext 中有一个 dbset:
public DbSet<Table> Table { get; set; }
类的
public class Table
{
public int Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
}
我还有一个原始查询,其中包含从其他查询中获得的新字段(SELECT ...)
"SELECT Id, Name, (SELECT ...) AS QueryField FROM Table"
如何QueryField
通过 EF 制作新对象?
如果我用这个
var items = _context.Table
.FromSqlRaw(
"SELECT Id, Name, (SELECT ...) AS QueryField FROM Table"
).ToList();
我收到错误“无效的列名'地址'”
如果我用这个
var items = _context.Table
.FromSqlRaw(
"SELECT Id, Name, (SELECT ...) AS QueryField FROM Table"
).Select(x => new
{
x.Id,
x.Name,
}).ToList();
我无法阅读QueryField
,因为x
有Table
类型并且那里没有这样的属性/归档。
解决方案
你没有分享你的(SELECT ...)
,但它看起来或多或少是这样的:
var items = _context.Table
.Select(x => new
{
x.Id,
x.Name,
QueryField = _context.OtherTable.Select(...)
}).ToList();
推荐阅读
- android - API 总是在一分钟内失败
- c++ - 当前步骤:构建 Tasks.json 文件
- javascript - 如何在 window.open 函数中编写 javascript 变量
- python - python请求,我得到的响应状态与邮递员的结果不同。
- javascript - D3:调整 x 轴大小并重新定位圆
- mysql - 在 Live Server 上使用 Node Js 连接到 MySQL
- app-inventor - App Inventor 2 - 删除字符串中的重复字母
- jupyter - Panda的Interact和IntSlider(ipywidgets)在jupyter中不显示滑块
- c - 质疑 GCC 生成的原子中 PowerPC 屏障的有效性
- c - 在 Unix 中工作的 Exec 调用说明