我正在使用 ef5 codefirst 开发 mvc4 应用程序,但无法解决此错误:
元数据集合中不存在身份为“xxxx”的成员。
更新: 我看到我使用了两个不同的上下文(导航对象被称为通过创建不同 DbContext 的存储库),这可能是一个问题。我改变了它,但现在我得到一个新的错误:
列名“Brewery_BreweryId”无效。
在 IntelliTrace 中,我看到 ef 试图
select ..., Brewery_BreweryId from UserProfiles
此列不存在也不应该存在,我想要多对多,而不是一对多。
我认为这与多对多关系有关。
这是我的代码示例
internal class BreweryConfiguration : EntityTypeConfiguration<Brewery>
{
public BreweryConfiguration()
{
// PK
HasKey(e => e.BreweryId);
// FK
HasMany(e => e.UserProfiles)
.WithMany()
.Map(m =>
{
m.MapLeftKey("BreweryId");
m.MapRightKey("UserId");
m.ToTable("BreweryUserProfiles");
});
namespace Project2.DAL.Entities
{
[Table("Breweries")]
public class Brewery : ABrewery
{
public int BreweryId { get; set; }
public ICollection<UserProfile> UserProfiles { get; set; }
}
}
namespace Project1.DAL.Entities
{
[Table("UserProfiles")]
public class UserProfile : IUserProfile
{
[Key]
public int UserId { get; set; }
...
}
}