Asp.net mvc 4 MVC4/EF5/自动增量

Asp.net mvc 4 MVC4/EF5/自动增量,asp.net-mvc-4,entity-framework-5,Asp.net Mvc 4,Entity Framework 5,我不知道如何准确地表达我的问题,这可能就是为什么我在任何地方都找不到这样的例子。我正在使用MVC4和EF5(也有Web API),但我不确定如何继续使用该模型,因为我以前从未真正使用过它们。我正在做一些关于元素周期表的事情,我想做一些事情,这样我就有了一个元素的电子配置列表。但是,我希望它只是根据输入顺序自动编号。如何让EF自动递增字段?基本上就像一个主键字段,后面没有限制。以下是我目前掌握的情况-我只是不确定如何继续: public class Elements { public in

我不知道如何准确地表达我的问题,这可能就是为什么我在任何地方都找不到这样的例子。我正在使用MVC4和EF5(也有Web API),但我不确定如何继续使用该模型,因为我以前从未真正使用过它们。我正在做一些关于元素周期表的事情,我想做一些事情,这样我就有了一个元素的电子配置列表。但是,我希望它只是根据输入顺序自动编号。如何让EF自动递增字段?基本上就像一个主键字段,后面没有限制。以下是我目前掌握的情况-我只是不确定如何继续:

public class Elements
{
    public int ElementID { get; set; }
    public string Name { get; set; }
    public int AtomicNumber { get; set; }
    public string Symbol { get; set; }
    public virtual Categories Category { get; set; }
    public virtual States State { get; set; }
    public virtual Occurences Occurence { get; set; }
    public virtual ICollection<Configurations> Configuration { get; set; }
}

public class Categories 
{
    public int CategoryID { get; set; }
    public string CategoryName { get; set; }
}

public class States
{
    public int StateID { get; set; }
    public string StateName { get; set; }
}

public class Occurences
{
    public int OccurenceID { get; set; }
    public string OccurenceName { get; set; }
}

public class Configurations
{
    public int ConfigurationID { get; set; }
    public int Order { get; set; }
    public int Value { get; set; }
}
公共类元素
{
public int ElementID{get;set;}
公共字符串名称{get;set;}
公共int原子数{get;set;}
公共字符串符号{get;set;}
公共虚拟类别类别{get;set;}
公共虚拟状态状态{get;set;}
公共虚拟事件发生{get;set;}
公共虚拟ICollection配置{get;set;}
}
公共课类别
{
public int CategoryID{get;set;}
公共字符串CategoryName{get;set;}
}
公共阶级国家
{
public int StateID{get;set;}
公共字符串StateName{get;set;}
}
公共类事件
{
public int occurrenceid{get;set;}
公共字符串OccurenceName{get;set;}
}
公共类配置
{
公共int配置ID{get;set;}
公共整数顺序{get;set;}
公共int值{get;set;}
}
综上所述,我想要的是在任何时候向配置中添加一个值。Order值从1开始,并随着每个新的“行”而增加,但仅针对特定的ElementID

这有意义吗?我在考虑使用数据注释,但除了一个键字段之外,我找不到任何匹配的项,但这会使每个订单都成为一个唯一的编号,这是我不想要的。我觉得我没有正确地表达这一点,因为我一直在看这些东西,所以这里有一张图片!耶

从程序的角度来看,这很可能是一件更好的事情。尽管这些数据每一次都会发生变化,但如果可能的话,我还是想尝试通过EF来实现这一点,这样我就知道该怎么做了

非常感谢。此外,如果您看到任何其他明显的错误,请务必让我知道:)我很少使用web开发的这一方面,因此我相信有办法做得更好

如何让EF自动递增字段

你不能。即使是简单的自动递增主键也不行。更不用说相对于其他值应该递增的字段了

映射方法不是告诉EF如何生成键值的方法。它告诉EF数据库是否以及如何为属性生成值,以便EF知道如何响应


因此,您要么在代码中生成订单号,要么让数据库执行(通过触发器,或者通过将
配置上的CUD操作映射到存储过程),并告诉EF数据库通过
HasDatabaseGenerateOption(DatabaseGenerateOption.Computed)计算值
订单
属性的配置中。

谢谢。可悲的是,当我读到更多关于EF和模型的内容时,这正是我想要了解的。对于这个小项目来说,这并不太重要,但这是一个很好的信息