- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试通过ArtistId 以异步
方式从Artist 中查询所有RelatedArtist。
类
public class Artist
{
public int ArtistId { get; set; }
public virtual ICollection<Artist> RelatedArtists {get;set;}
}
上下文
modelBuilder.Entity<Artist>()
.HasMany(x => x.RelatedArtists)
.WithMany().Map(x =>
{
x.MapLeftKey("ArtistId");
x.MapRightKey("RelatedArtistId");
x.ToTable("RelatedArtists");
});
无异步查询
Context.Artists.First(x => x.ArtistId == artistId)
.RelatedArtists
.ToList()
具有预期结果的 SQL 查询
SELECT * FROM Artists where ArtistId IN (
SELECT [RelatedArtistId]
FROM [dbo].[RelatedArtists]
WHERE artistId = 740
)
如何进行异步 EF Linq 查询来执行上述查询(或非常相似的查询)。
最佳答案
如果您使用的是 EF 6,则可以使用 FirstOrDefaultAsync
扩展方法:
var entity=await Context.Artists.FirstOrDefaultAsync(x => x.ArtistId == artistId);
if(entity!=null)
{
var list=entity.RelatedArtists.ToList();
}
如果您想查看可以使用的所有异步方法的列表,请转至此 msdn page查看全部 IQueryable<T>
扩展方法。
Code First 会将单向关联视为一对多,现在如果您决定在模型中映射 FK 以识别根 Artist
,您的查询可能会好得多:
public class Artist
{
public int ArtistId { get; set; }
public int? RelatedToId{ get; set; }
public virtual Artist RelatedTo {get;set;}
public virtual ICollection<Artist> RelatedArtists {get;set;}
}
使用 Fluent Api 的这种关系的配置是:
modelBuilder.Entity<Artist>().HasOptional(a=>a.RelatedTo).WithMany(a=>a.RelatedArtist).HasForeignKey(a=>a.RelatedToId);
那么您的查询将如下:
var list =await Context.Artists.Where(a=>a.RelatedToId==artistId).ToListAsync();
你可以试试这个:
var list= await Context.Artists.Where(a=>a.RelatedArtists.Any(e=>e.Id==artistId)).ToListAsync();
关于c# - EF LINQ : Get self referencing (many to many) ICollection items in async manner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35917485/
正在上课 Introduction to Kubernetes我遇到了这句话: 借助 Kubernetes 及其插件,我们可以基于软件定义存储 (SDS),以无缝方式自动将本地、外部和存储解决方案挂载
我读了ZeroMq guide我偶然发现了以下内容: You MUST NOT share ØMQ sockets between threads. ØMQ sockets are not threa
我想以并行方式处理一个事件。我的想法是将每个回调添加到 ThreadPool,有效地让每个方法注册由 ThreadPool 处理的事件。 我的试用代码如下所示: Delegate[] delegate
我已经浪费了好几天时间与我的 16mhz 8 位 AVR(mega 2560)战斗。 目标是标准化我收到的值(加速度计、磁力计等)。 这些值是 16 位有符号 (int16),在我想要一个 0.0f-
我有一个用例,其中 S3 文件作为批处理应用程序的输入(用 java 编写),并且文件大小已达到 10 GB。 目前,此 S3 文件保存在本地,然后进行处理。这种方法的问题是文件包含客户数据,因此它在
我想将一个文件添加到 svn:ignore 中,这样即使文件名以不同的大小写形式出现,它也总是被忽略。怎么做? 例如: 我想忽略文件readme.md,即使它在任何情况下都存在 README.md r
功能: 当用户单击图像时,文本图像应该模拟淡出和淡入效果。因此,当用户单击图像时,它将淡出和淡入作为一个 Action ,而当用户不单击图像时,它将不会有淡出和淡入效果。因此,当用户单击图像两次时,文
假设我有一个RGB字符串(格式:# ),如下所示: "#00BBCC" 并且我想以比使用显而易见的方式更紧凑的方式来匹配和捕获其元素: "#\\([[:xdigit:]\\{2\\}]\\)\\([
在我的构建过程中,我将文件从一个目录复制到另一个目录,过滤掉一些不必要的文本,如下所示: 我想在被复制的每个
Apple 已拒绝上传到 App Store 的 iOS 应用程序。我开发了一个应用程序,可以在 iOS 设备中安装签名的配置文件 (.mobileconfig)。 我无法弄清楚我以未经批准的方式使用
我有一个变量包含如下值: USER1:USER2,USER3:USER4,USER5:USER6 我想提取像USER1,USER3,USER5这样的值 例如: VALUE = USER1:USER2,
我使用过 Xceed Property Grid。我在这个 Property Grid 中使用了 Xceed 的 Collection Editor for Collections。 [Editor(
我可以访问我感兴趣的文本语料库中的词向量。现在,我面临的问题是这些向量区分大小写,即例如“他”不同于“他”不同于“他”。 我想找到与单词“Him”最相似的单词,不区分大小写。我使用与 Google w
我正在使用rxtx用于使用提供 USB 通信端口的 FTDI2232H 在 Java 中进行串行 I/O 处理。它工作得很好,但有一个异常(exception):如果我拔掉 USB 电缆,那么 COM
我有一个要安全更新的静态词典。最初,字典是空的,但在应用程序的生命周期中,它会添加新的值。此外,整数值将充当可以递增和递减的单独计数器。 private static Dictionary foo =
我正在开发一个简单的评论系统,用户可以在其中评论其他评论,从而创建层次结构。为了按层次顺序获取评论,我在 Postgres 中使用了 Common Table Expression。 以下是字段和使用
我正在使用 PHP DOM 扩展解析一些 XML,以便以其他形式存储数据。毫不奇怪,当我解析一个元素时,我经常需要获取某个名称的所有子元素。有方法 DOMElement::getElementsByT
好吧,所以我不知道它的名字,但我有一个 sprite kit 游戏(跑酷游戏),当游戏结束时,会有一个“拯救我”按钮和一个用完的计时器因此。当计时器用完时,您将无法再单击按钮来保存角色。 不过,我不想
查看 Traversable 的 scaladoc它说 All operations are guaranteed to be performed in a single-threaded manne
这个问题已经有答案了: Call to method of static java.text.DateFormat not advisable? (8 个回答) 已关闭 8 年前。 我收到诸如“静态
我是一名优秀的程序员,十分优秀!