gpt4 book ai didi

entity-framework - 将属性映射到 Entity Framework CTP5 中的(不同命名的)外键字段

转载 作者:行者123 更新时间:2023-12-04 07:24:58 25 4
gpt4 key购买 nike

我正在尝试使用 Entity Framework CTP5 Fluent API 来映射现有数据库。我有以下类(class):

public class Shop
{
public long Id
{
get;
set;
}
}

public class Sale
{
public long Id
{
get;
set;
}

public virtual Shop Shop
{
get;
set;
}
}

相应的表称为“Stores”和“Sales”。 Sales 有一个 StoreId 外键,指向 Stores 表中的 Id 字段。

我正在努力将 Sale.Shop.Id 映射到表中的 StoreId。我不能随意将其更改为 ShopId,因此需要映射它。

在 CTP4 中,我使用的是:
modelBuilder.Entity<Sale>().MapSingleType(x =>
new
{
Id = x.Id,
StoreId = x.Shop.Id
});

我尝试了以下方法:
modelBuilder.Entity<Sale>().Property(x => x.Shop.Id).HasColumnName("StoreId");

但是,这似乎只适用于原始类型。

如何指定此映射?

最佳答案

更新:我在下面为 EF 4.1 的候选发布版本添加了修订版本

经过一番寻找,我找到了适合我的答案:

EF4.1 RC 版本:

modelBuilder.Entity<Booking>().HasRequired(b => b.Booker)
.WithMany(m => m.BookedSlots).Map(p=>{
p.MapKey("BookerID");
});

在你的情况下:
modelBuilder.Entity<Sale>().HasRequired(sale => sale.Shop)
.WithMany().Map(s=> {
s.MapKey("StoreId");
});

我的版本略有不同,因为我在关系的两边都有导航属性。

关于entity-framework - 将属性映射到 Entity Framework CTP5 中的(不同命名的)外键字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4398583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com