实体框架是否由于键值对而加入了部分硬编码的“ on”?

罗伯特

所以我有这个:

db.Table1
  .Join(db.Table2, t1 => t1.id, t2 => t2.id, (t1, t2) => new { t1, t2 })

但是我需要做的是同时加入一个属性值/键值表以及一个特定的属性,例如:

SELECT * FROM Table1 t1
  JOIN Table2 t2 ON t1.id = t2.id AND t2.attributeid = 123

我如何限定那个attributeid = 123部分?

史蒂夫·皮

一个Where子句应满足:

db.Table1
    .Join(db.Table2, t1 => t1.id, t2 => t2.id, (t1, t2) => new { t1, t2 })
    .Where(x => x.t2.attributeId == 123);

理想情况下,Table1应该具有到Table2的导航属性:(HasOne或HasMany)

单数表2:

var result = db.Table1
    .Include(x => x.Table2)
    .Where(x => x.Table2.AttributeId == 123);

或Table2s的集合...

var result = db.Table1
    .Include(x => x.Table2s)
    .Where(x => x.Table2s.Any(t2 => t2.AttributeId == 123);

它将返回包含具有该属性的Table2的任何Table1 ...

或与您要过滤Table2s的集合:

var result = db.Table1
    .Where(x => x.Table2s.Any(t2 => t2.AttributeId == 123)
    .Select(x => new 
    {
        Table1 = x,
        FilteredTable2s = x.Table2s.Where(t2 => t2.AttributeId == 123).ToList()
    });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

关于实体框架的问题:ID 是否被视为键值?

来自分类Dev

将实体映射到具有部分硬编码的复合外键的查找表

来自分类Dev

实体框架以空条件加入

来自分类Dev

加入LINQ和实体框架

来自分类Dev

实体框架查询加入问题

来自分类Dev

实体框架插入了0行

来自分类Dev

实体框架核心加入并包含内部实体

来自分类Dev

Java路径中的硬编码部分

来自分类Dev

交易从长远到重塑,加入了买卖数据框架

来自分类Dev

由于关系实体,更新实体框架实体失败

来自分类Dev

加入实体框架返回意外值

来自分类Dev

MVC:复制实体框架部分

来自分类Dev

MVC:复制实体框架部分

来自分类Dev

JSON在Play框架(Scala)中使用硬编码值读取

来自分类Dev

CoreData:错误-实体不是与键值编码兼容的ID

来自分类Dev

实体框架OneToMany更新项目-缺少外键值

来自分类Dev

首先使用实体框架代码获取外键值

来自分类Dev

实体框架5外键值未更新(VB.NET)

来自分类Dev

在实体框架中将外键值设置回Null

来自分类Dev

首先使用实体框架代码,获取外键值

来自分类Dev

扩展部分类在实体框架中的放置

来自分类Dev

Flatten加入了DStream

来自分类Dev

在实体框架中加入自定义类型

来自分类Dev

如何在实体框架中加入一对多关系?

来自分类Dev

加入实体框架中的表并显示其他列

来自分类Dev

是否可以对iframe的内容进行硬编码?

来自分类Dev

是否已缓存/编译了简单的硬编码算术?

来自分类Dev

SQL Server是否确定硬编码日期较大?

来自分类Dev

检查以查看gxt simplecombobox中是否存在硬编码值