使用 Entity Framework Core 查询关联表:获取所有 MerchantId 为 114 或没有关联记录的 MemberCoupon
使用 Entity Framework Core 和 LINQ 查询,从两个关联表中获取满足条件的记录:所有 MerchantId 为 114 的 MemberCoupon 或没有关联 MemberCouponApplyMerchant 记录的 MemberCoupon。
using System.Linq;
public class MyDbContext : DbContext
{
public DbSet<MemberCoupon> MemberCoupons { get; set; }
public DbSet<MemberCouponApplyMerchant> MemberCouponApplyMerchants { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
// 配置数据库连接
optionsBuilder.UseSqlServer("YourConnectionString");
}
}
public class MemberCoupon
{
public long Id { get; set; }
public string Name { get; set; }
public long MemberId { get; set; }
}
public class MemberCouponApplyMerchant
{
public long Id { get; set; }
public long MemberCouponId { get; set; }
public long MerchantId { get; set; }
}
public class Program
{
public static void Main()
{
using (var dbContext = new MyDbContext())
{
var query = from memberCoupon in dbContext.MemberCoupons
where !dbContext.MemberCouponApplyMerchants.Any(mca => mca.MemberCouponId == memberCoupon.Id)
|| dbContext.MemberCouponApplyMerchants.Any(mca => mca.MerchantId == 114)
select memberCoupon;
var result = query.ToList();
// 使用result进行后续操作
}
}
}
在上面的代码中,我们创建了一个MyDbContext类来表示数据库上下文,包含了MemberCoupons和MemberCouponApplyMerchants两个DbSet属性。然后,在Main方法中,我们使用LINQ查询来获取满足条件的MemberCoupon列表。
查询条件!dbContext.MemberCouponApplyMerchants.Any(mca => mca.MemberCouponId == memberCoupon.Id)表示MemberCoupon没有任何关联的MemberCouponApplyMerchant。查询条件dbContext.MemberCouponApplyMerchants.Any(mca => mca.MerchantId == 114)表示MemberCouponApplyMerchant的MerchantId等于114。通过使用||运算符,我们将这两个条件组合在一起。
最后,我们使用ToList方法执行查询并将结果存储在result列表中,你可以根据需要对result进行后续操作。请记得根据你的实际情况修改数据库连接字符串。
原文地址: https://www.cveoy.top/t/topic/pHsI 著作权归作者所有。请勿转载和采集!