如何在EF Code First中实现自定义密钥生成功能?

时间:2015-04-09 17:26:41

标签: c# entity-framework ef-code-first

在处理项目时,我偶然发现了必须实现一个生成类似于自然复合键的唯一标识符的函数的问题。我试图在下面的代码中尽可能地说明情况。我没有在下面实例化对象,因为我只想展示生成密钥的结构和方法。

// Define other methods and classes here
public class ClassA
{
    public string ClassAID { get; set; }
    public string CodeA { get; set; }
    public string CodeB { get; set; }

    public virtual ClassB ClassB { get; set; }
    public virtual User user { get; set; }
}

public class ClassB
{
    public string classAID { get; set; }
    public string CodeC { get; set; }

    public virtual ClassA ClassA { get; set; }
}

public class User
{
    public string userID { get; set; }
    public string Name { get; set; }
    public string OfficeID { get; set; }
}

// The function to generate the ID for both classes:
public string GenerateClassAID(User user)
{
    string classAID = user.OfficeID + ClassB.CodeC + /*incrementing number*/ + DateTime.Now.Year;

    return classAID;
}

我无法找出最佳定位生成函数的位置。特别是因为两个实体都是在一个过程中创建的将DbContext类放到最好的位置会是什么?还有更多的类,如ClassB,我需要能够在尝试不重复代码时调用函数来生成ID。

0 个答案:

没有答案