3
我的類層次結構類似以下內容:EF5代碼首先標識列錯誤
class BaseType
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[DataType(DataType.Text)]
[StringLength(100)]
public string CreatedBy { get; set; }
[DataType(DataType.DateTime)]
public DateTime? CreatedDate { get; set; }
....
}
class Group : BaseType
{
public string Name { get; set; }
}
這裏是OnModelCreating上下文的方法:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<MCQGroup>()
.HasKey(t0 => t0.Id)
.Map(m => m.ToTable("groups"))
.HasMany(t1 => t1.Sections)
.WithMany(t2 => t2.Groups)
.Map(m =>
m.MapLeftKey("group_id")
.MapRightKey("section_id")
.ToTable("groups_to_sections"));
...........
}
我不使用自動錶代或遷移。相反,我有一些腳本來創建數據庫(實際上,我用第一次運行autogeneration和腳本創建表後,包括webdata_ *表)。這是由多個使用的上下文引起的,在這種情況下,表自動生成有許多問題。
下面是SQL腳本:
-- Tables creation
CREATE TABLE [groups]
(
[id] INT NOT NULL IDENTITY(1, 1),
[name] NVARCHAR(300) NOT NULL,
[createdby] NVARCHAR(4000) NULL,
[createddate] DATETIME NULL,
[modifiedby] NVARCHAR(4000) NULL,
[modifieddate] DATETIME NULL
);
GO
......
-- Intitial data population
SET IDENTITY_INSERT [user_profiles] ON;
GO
INSERT INTO [user_profiles] ...........
SET IDENTITY_INSERT [user_profiles] OFF;
GO
INSERT INTO [webpages_Membership] .............
GO
SET IDENTITY_INSERT [webpages_Roles] ON;
GO
INSERT INTO [webpages_Roles] ..............
GO
SET IDENTITY_INSERT [webpages_Roles] OFF;
GO
INSERT INTO [webpages_UsersInRoles] ...........
GO
NOTE0:我不喜歡EdmMetadata或類似的東西(它沒有啓動時創建的,所以我沒有腳本的話)的任何表。我不是EF的大師,我認爲Code First方法不需要任何元數據(對嗎?)。
注1:當然通過創建的上下文所需要的所有其他類/表=)
NOTE2:可能是我做過數據人口中一些錯誤的身份?所有字符串都會觸及IDENTITY。
問題:當我試圖挽救組我得到一個異常「的成員身份與‘ID’不將元數據集合中存在參數名:身份證」如何解決呢?
偉大的信息,謝謝! –