实体框架-如何将代码表中的列添加到当前实体中

本文关键字:实体 添加 代码表 框架 | 更新日期: 2023-09-27 18:00:15

我有两个表。

一个表是具有3列typecode_idcode_namecodes_table

它包含以下行:

type   code_id    code_name
---------------------------
Color    1        Red
Color    2        Blue
Color    3        Green
Size     1        Small
Size     2        Medium
Price    1        Cheep

等等。

第二个表(我们称之为Products)包含一个名为COLOR_ID的列。

我认为不可能创建从第二个表到第一个表的外键。

现在,我想返回Products表(即第二个表)中的所有实体,并且每个实体都将根据其COLOR_ID包含COLOR_NAME。(即Im试图根据color_id将color_name从表1检索到表2中)

我正在使用运行在VS2013上的EF6,它通过ODP 12.1.24连接到Oracle11G。

我如何使用实体框架来做到这一点?是否有Linq查询可以检索合并后的数据?

谢谢。

实体框架-如何将代码表中的列添加到当前实体中

您可以在linq:中使用嵌套自

using (var ctx = new TestContext())
{
    var result = (from product in ctx.Products
                  from code in ctx.Codes.Where(c => product.colorId == c.code_id && c.type == "Color").DefaultIfEmpty()
                  select new {product, code}).ToList();
}