.net 如何在实体框架中添加到中间表

m3eecexj  于 2022-12-24  发布在  .NET
关注(0)|答案(1)|浏览(115)

我有以下实体:

class Car
{
    public string make;
    public string model;
    public string registration;
}

我们有多个经销商,我们希望确保经销商1只能看到属于他们的汽车,经销商2只能看到属于他们的汽车。
我们不希望在应用程序的日常业务逻辑中实现这种检查,因为它可能导致规则执行的不一致,所以我在Entity Framework周围创建了一个瘦 Package 器来实现这一点。
我有另一个实体:

class Dealer
{
    public Guid id;
}

我不希望car引用dealer,所以我计划让 Package 器代码看起来像这样:

void AddCar(Car car, Dealer dealer)
{
    // Some authorization logic goes here

    *Add dealer if not already added

    context.Add(car)

    *Add link between car and dealer to third table
}

有没有什么方法可以添加数据到第三个链接表中,而不用定义一个新类来表示每种类型实体的链接?例如,我可以只做一个哑表插入或类似的操作吗?
为了清晰起见,我已经尽可能地简化了我的示例,但实际情况是,我试图使 Package 器通用,因为我不知道在所有微服务中存在哪些实体(我也不应该)

bis0qfac

bis0qfac1#

可以使用ExecuteSql在实体框架中执行SQL查询。

int carId = 1;
int dealerId = 1;
using (var context = new AppDbContext())
{
    var sql = $"INSERT INTO [CarDealer] ([CarId], [DealerId]) VALUES ({carId}, {dealerId})";
    var rowsModified = context.Database.ExecuteSql(sql);
}

相关问题