2
我有一個簡單的用戶表:表分割 - 是否可以將表分成兩個完全獨立的實體?
CREATE TABLE User
(
UserId int,
UserName nvarchar(35),
Password nvarchar(size),
);
我想拆分此成在EF6兩個實體。用戶和用戶密碼。這些代表兩種完全不同的業務需求,但恰好位於同一張桌子上。
所以我創建了兩個實體。
public class User
{
public int Id { get; set; }
public string Username { get; set; }
}
public class UserPassword
{
public int Id { get; set; }
public string Password{ get; set; }
}
我有地圖,像這樣
class UserMap : EntityTypeConfiguration<User>
{
public UserMap()
{
Property(p => p.Id).HasColumnName("UserId");
}
}
class PasswordMap : EntityTypeConfiguration<UserPassword>
{
public PasswordMap()
{
ToTable("User");
Property(p => p.Id).HasColumnName("UserId");
}
}
但是當我使用這些實體,我得到以下錯誤:
消息=「實體類型‘的userPassword’和‘用戶’不能共享表'用戶',因爲它們不在相同的類型層次結構中,或者沒有有效的一對一外鍵關係,並且它們之間具有匹配的主鍵。「
我不想創建關係。我無法按照層次結構設置表格。我不想要歧視。我真的只想有兩種不同的方式來到同一張謹慎的桌子。有沒有辦法做到這一點,而不是創建兩個上下文?
「我不想創建關係。」但是,當他們被安排在同一張桌子上時,你已經做到了。插入新用戶時會發生什麼? –
密碼可以爲空。添加新用戶不會影響密碼。 –
我想我只是通過在UserPassword的數據庫中有一個可更新的視圖來解決問題,然後將它用作表。 –