C# 自动增量和SQL';身份
这个链接回答了我关于SQL中是否存在自动增量的疑问 我现在的问题是这样的, 我有两个由这些类表示的表C# 自动增量和SQL';身份,c#,asp.net,mysql,sql,asp.net-mvc-4,C#,Asp.net,Mysql,Sql,Asp.net Mvc 4,这个链接回答了我关于SQL中是否存在自动增量的疑问 我现在的问题是这样的, 我有两个由这些类表示的表 public class A { [Key] public int AId{get;set;} public int BId{get;set;} [ForeignKey("BId")] public virtual B pb{get;set;} } public class B { [Key] public int BId{get;set;} p
public class A
{
[Key]
public int AId{get;set;}
public int BId{get;set;}
[ForeignKey("BId")]
public virtual B pb{get;set;}
}
public class B
{
[Key]
public int BId{get;set;}
public int AId{get;set;}
}
在初始化类的对象期间,会出现一个错误,说明BId不能为null
在MySQL中,我可以将一列声明为AUTO_INCREMENT
,然后将表初始化为
INSERT INTO myTable(col2, col3, col4) VALUES('col2','col3','col4');
假设
col1
声明为自动递增。我想对类A中的BId
做一些类似的操作,这样我就不必为它设置整数。外键实际上不是这样工作的
您可以使用主键执行所需操作,如果主键是标识列,SQL Server将为您设置主键。但是对于外键,您应该已经知道所需的值。您应该已经有了一个要引用的B
的现有实例,或者您应该在创建A
之前创建它
如果您要求外键自动递增,那么您实际上并不需要外键,而是需要其他外键。您可能需要重新考虑您的表结构。如果
BId
不需要值,请在MySQL中使用NULL
约束声明它,并使C属性也可以为NULL:public int?投标
如果要为BId
设置默认值,可以使用default
子句进行声明
如果要为每个
a
创建一个新的B
,可以使用表a
Hi@asp上的触发器来完成,是否使用linq2sql?实体框架?其他ORM?这个问题不完整。