主表TestOne
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
[Display(Name = "测试ID")]
public int DocEntry { get; set; }
}
它的子表TestOneLine
{
[Key]
[System.ComponentModel.DataAnnotations.Schema.Column(Order = 1)]
[DisplayName("测试ID")]
public int DocEntry { get; set; }
[JsonIgnore]
[ForeignKey("DocEntry")]
[ModelField(Persist = false)]
public TestOne TestOne { get; set; }
[Key]
[System.ComponentModel.DataAnnotations.Schema.Column(Order = 2)]
[DisplayName("行号")]
public int LineNum { get; set; }
}
那TestOneLine的子表该怎么创建啊?里面的主键该怎么和上面的表进行关联啊?
------解决思路----------------------
不知道你表中字段的数据类型是什么,另这3张表通过什么来关联的。下面的sql只是一个例子。
create table TestOne(
DocEntry int,
Memo varchar(50),
constraint PK_Testone primary key(DocEntry)
)
create table TestOneLine
(
DocEntry int,
LineNum int,
LineMemo varchar(50)
constraint PK_TestOneLine primary key(DocEntry)
)
create table TestOneLine1
(
DocEntry int,
LineNum int,
LineNum1 int,
LineMemo varchar(50)
)
alter table TestOneLine add constraint FK_TestOneLine foreign key(DocEntry) references TestOne(DocEntry)
alter table TestOneLine1 add constraint FK_TestOneLine1 foreign key(DocEntry) references TestOneLine(DocEntry)
------解决思路----------------------
试一下下面的sql
create table TestOne
(
DocEntry int,
Memo nvarchar(50),
constraint PK_Testone primary key(DocEntry)
)
create table TestOneLine
(
DocEntry int,
LineNum int,
LineMemo nvarchar(50),
constraint PK_TestOneLine primary key(DocEntry,LineNum)
)
create table TestOneLine1
(
DocEntry int,
LineNum int,
LineNum1 int,
LineMemo nvarchar(50)
)
alter table TestOneLine add constraint FK_TestOneLine foreign key(DocEntry) references TestOne(DocEntry)
alter table TestOneLine1 add constraint FK_TestOneLine1 foreign key(DocEntry,LineNum) references TestOneLine(DocEntry,LineNum)
insert into TestOne values(1,'备注')
insert into TestOneLine values(1,0,'备注1')
insert into TestOneLine values(1,1,'备注2')
insert into TestOneLine values(1,2,'备注3')
insert into TestOneLine1 values(1,0,0,'备注1')
insert into TestOneLine1 values(1,0,1,'备注2')
insert into TestOneLine1 values(1,0,2,'备注3')
insert into TestOneLine1 values(1,1,0,'备注4')
insert into TestOneLine1 values(1,1,1,'备注5')
insert into TestOneLine1 values(1,2,0,'备注6')