c# - 如何使用外键访问关系表上不同变量的值
问题描述
假设我的数据库中有两个表。我想访问我的第二个表的另一个变量,该变量从主表的变量映射到外键。这是否可能从模型中的 LookUp 表中到达另一个变量的值。我用谷歌搜索,但从未找到解决方案。
我想问一下模型如何自动做到这一点?这些是我的表格模型;
A: id:1, LookUpID:1;
查找:id:2,名称:“某个名称”
结果将如下所示;
{ A:{ id: 1, LookUp: "some name" } }
原谅我的英语,提前谢谢你。
[Table("A")]
public class A
{
[Key]
public int id {get; set;}
[Column("LookUp")]
public int LookUpID {get; set;}
[ForeignKey="LookUpID"]
public virtual LookUp lookup {get; set;}
}
public class LookUp
{
[Key]
public int id {get; set;}
public string name {get; set;}
}
解决方案
看起来投影就是你所追求的。要返回具有 ID 和查找名称的对象:
public class AViewModel
{
public int Id { get; set; }
public string Lookup { get; set; }
}
然后
var models = context.As.Select(a => new AModel { Id = a.Id, Lookup = a.Lookup.Name }).ToList();
这可以序列化为 JSON,如下所示:
{ Id: 1, Lookup: "test message" }
例如,如果您只想在本地处理详细信息而不返回函数外部的数据,则可以投影到匿名类型:
var models = context.As.Select(a => new { Id = a.Id, Lookup = a.Lookup.Name }).ToList();
推荐阅读
- python - PyTorch:向量化循环将一个值从向量添加到向量
- html - 导航栏有点乱
- haskell - Neo4j MERGE ON MATCH ON CREATE 是否有属性最大限制?
- python - 如何使用 django 用外键填写另一个字段?
- javascript - 设置链接以更改
- 内容块
- xml - 如何访问 Odoo 13 中每一行的 pos 订单行的税务信息
- javascript - JS 画布缩放和平移大数据(100k-1M 个对象)
- numpy - 为什么在 numpy 数组中索引不存在的维度不会引发错误?
- prometheus - Prometheus 指标端点正在运行,但目标状态为关闭
- css - Flex Box 项目未与上一行对齐