EF Core 映射关系及取数据(急等高手)

佛祖的木鱼 2019-07-15 12:57:24
我现在准备用EF Core从现有的数据库里取数据出来,有三张表:

其中,一个JobHeader可以包含多个JobOperation,关联键是JobNum, 同样的一个JobOperation,可以包含多个OprTransactions,关联键是JobNum+OpCode

请问我怎样用EF Core来定义映射关系并取值呢?

public class JobHeader
{
[Key]
public string JobNum { get; set; }
public string PartNum { get; set; }
}

public class JobOperation
{
[Key]
public int Id { get; set; }
public string JobNum { get; set; }
public string OpCode { get; set; }

}

public class OprTransactions
{
[Key]
public int Id { get; set; }
public string JobNum { get; set; }
public string OpCode { get; set; }
public string TransType { get; set; }
}

希望取值的内容如下:

{
"jobNum": "000025172-0009",
"partNum": "CIB-75-00024KT-A",
"JobOperation": [
{
"jobNum": "000025172-0009",
"opCode": "NF01",
"OprTransactions": [
{
"id": 1,
"jobNum": "000025172-0009",
"opCode": "NF01",
"transType": "OPRSTART",
},
{
"id": 2,
"jobNum": "000025172-0009",
"opCode": "NF01",
"transType": "OPREND",
}
]
},
{
"jobNum": "000025172-0009",
"opCode": "NF34",
"OprTransactions": [
{
"id": 3,
"jobNum": "000025172-0009",
"opCode": "NF34",
"transType": "OPRSTART",
}
]
}
]
}
...全文
6885 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
小强清风 2021-03-31
  • 打赏
  • 举报
回复
这不就是多对多的关系吗
jhonsonzhang 2021-03-28
  • 打赏
  • 举报
回复
定义dbcontext啊,你想怎么取,就怎么取!取不出来再把代码虚心贴出来,我还是有那么一点小信心的,高手多的是,具体都是代码说话,什么映射关系都是多余的,你取数据时候用linq lamada进行相应操作就可以了。
qq_35340878 2021-01-05
  • 打赏
  • 举报
回复
用单个表,得到每个表数据在用匿名方式拼接数据
叫我 Teacher 周 2019-08-16
  • 打赏
  • 举报
回复
EF 里有一种特殊的设计叫做导航属性。
佛祖的木鱼 2019-07-23
  • 打赏
  • 举报
回复
你这只是定义了映射关系,并没有告之如何取数据哦。。。
d383137359 2019-07-19
  • 打赏
  • 举报
回复
你这个简单

public class JobHeader
    {
        [Key]
        public string JobNum { get; set; }
        public string PartNum { get; set; }
        public virtual List<JobOperation> JobOperations{get;set;}
    }

    public class JobOperation
    {
        [Key]
        public int Id { get; set; }
        public string JobNum { get; set; }
        public string OpCode { get; set; }
        public virtual List<OprTransactions> OprTransactions{get;set;}
    }

    public class OprTransactions
    {
        [Key]
        public int Id { get; set; }
        public string JobNum { get; set; }
        public string OpCode { get; set; }
        public string TransType { get; set; }
    }

//然后你最后把 JobHeader.toJson();就是你上面那个结果了
佛祖的木鱼 2019-07-16
  • 打赏
  • 举报
回复
多谢回复。感觉应该不复杂,只是平常较少用EF Core.....
XBodhi. 2019-07-15
  • 打赏
  • 举报
回复
我格式 其实不太喜欢 这种方式,虽然快捷。因为可读性比较差。
XBodhi. 2019-07-15
  • 打赏
  • 举报
回复
EF 不是特别熟悉。不过我觉得 DbContext 里有 Entity 的感念,你可以用 EntityConnection 和 EntityCommand 来看看,然后重写 CreatingModel 和 CreatingTable ,你可以 LINQ TO SQL 的方式来序列化下看看。

因为写的比较少。也不太喜欢这种方式。所以 平时很少用。

给你个帖子推荐下 https://www.cnblogs.com/libingql/p/4052906.html

佛祖的木鱼 2019-07-15
  • 打赏
  • 举报
回复
坐等高手啊 等到答案就结贴!

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧