autoincrement column in SQL database
这个链接回答了我对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;}
public int AId{get;set;}
}在初始化A类的对象时,出现了一个错误,说明在MySQL中,我可以将一个列声明为AUTO_INCREMENT,然后将表初始化为如下所示
INSERT INTO myTable(col2, col3, col4) VALUES('col2','col3','col4');假设col1被声明为自动递增。我想用A类中的BId做一些类似的事情,这样我就不需要给它设置一个整数了。
发布于 2013-02-25 22:46:03
这并不是外键的工作方式。
您可以使用主键执行您所要求的操作,如果主键是标识列,SQL Server将为您设置主键。但是对于外键,你应该已经知道你想要的值了。您应该已经有一个要引用的现有B实例--或者应该在创建A之前创建它。
如果你想让外键自动递增,你并不是真的想要一个外键,你想要的是别的东西。您可能需要重新考虑您的表结构。
发布于 2013-02-25 22:47:23
如果BId不需要值,请在MySQL中使用NULL约束声明它,并使C#属性也可以为空:public int? BId。
如果要为BId设置默认值,可以使用DEFAULT子句声明它。
如果您想要为每个A创建一个新的B,可以使用表A上的触发器来完成。
https://stackoverflow.com/questions/15069501
复制相似问题