Tag: entity framework core 2.1

如何在SaveContext上更新已修改和已删除的实体?

目标是跟踪谁更改并删除了一个实体。 所以我有一个实现接口的实体: interface IAuditable { string ModifiedBy {get;set;} } class User: IAuditable { public int UserId {get;set;} public string UserName {get;set;} public string ModifiedBy {get;set;} 1541692055 public byte[] RowVersion { get; set; } } 现在,实体删除操作的代码可能如下所示: User user = context.Users.First(); user.ModifiedBy = CurrentUser.Name; context.Users.Remove(employer); context.SaveContext(); 实际上: ModifiedBy 更新将永远不会执行 (当我的db历史触发器期望“处理”它时)。 只有删除语句才会在DB 上执行 。 我想知道如果实体被修改,如何强制EF Core“更新”已删除的实体/条目(实现特定的接口)。 注意: RowVersion增加了额外的复杂性。 […]

entity framework核心/ SQLite:加入“扁平化”结果后的GroupJoin

使用Entity Framework Core 2.1和SQLite数据库,如果我在另一个Join之后使用它,我会从LINQ GroupJoin获得不同的行为。 目前尚不清楚这是一个错误还是我忽略了什么。 我创建了一个最小的VS2017项目来重现这个,可以在这里找到: https://gitlab.com/haddoncd/EntityFrameworkGroupJoinIssue 在这个例子中,我为Blog表中的每一行获取一个对象,每个对象包含多个PostTitles: db.Blogs .GroupJoin( db.Posts, s => s.BlogId, p => p.BlogId, (s, ps) => new { s.BlogId, s.BlogTitle, PostTitles = ps.Select(p => p.PostTitle), } ) .OrderBy(x => x.BlogId)) 但是在这个例子中,结果是“扁平的” – 我为每个Blog-Post对获得一个对象,就像你从传统的SQL外连接一样: db.Subscriptions .Join( db.Blogs, s => s.BlogId, b => b.BlogId, (s, b) => new { s.SubscriptionId, b.BlogId, b.BlogTitle, […]