Asp.net mvc 如何创建身份栏

Asp.net mvc 如何创建身份栏,asp.net-mvc,entity-framework,asp.net-mvc-4,Asp.net Mvc,Entity Framework,Asp.net Mvc 4,我需要将数据插入表中主键所在的数据库。但它不必是标识列。我想自己创建。我已使用属性DatabaseGenerateOption修饰了我的ID属性。无。[key] [DatabaseGeneratedDatabaseGeneratedOption.None] public int TestID{get;set;}我的查询是我需要生成id的地方。它在控制器中吗? 或者我读过ABBGUID。我需要将我的id定义为GUID吗?哪种方式最好?我正在研究MVC4,实体框架代码优先的方法` var Query

我需要将数据插入表中主键所在的数据库。但它不必是标识列。我想自己创建。我已使用属性DatabaseGenerateOption修饰了我的ID属性。无。[key] [DatabaseGeneratedDatabaseGeneratedOption.None] public int TestID{get;set;}我的查询是我需要生成id的地方。它在控制器中吗? 或者我读过ABBGUID。我需要将我的id定义为GUID吗?哪种方式最好?我正在研究MVC4,实体框架代码优先的方法`

var Query = db.Database.SqlQuery<decimal>("Select isnull(Max(" + FieldName + "),0) from " + TableName).ToList();

if (Query.FirstOrDefault() == 0)
    row = 1; else 
    row = Query.FirstOrDefault() + 1;

我使用这种方法为该表生成一个新键,

您应该在保存上下文中的更改之前生成ID。但使用int时,您可能会遇到重复键的问题,更好的选择是使用GUID。为什么当您只需要将next int设置为ID时不想使用自动生成的密钥?您的问题令人困惑。你说你想要一个标识列,然后你明确地说那不是你想要的。也许更多关于您试图解决的问题的信息会有所帮助。需要完成什么?为什么不能使用标准标识列?