在DB First中添加属性的xml属性

时间:2017-10-20 08:05:08

标签: c# entity-framework serialization

我有:

实体框架DB首先

public partial class Departments
{
    public string Name_Department { get; set; }
    public int Department_ID { get; set; }
}

当我刷新模型时,文件中的所有修改都被清除

我需要:

如何将属性属性添加到Serialize XML,如:

[Serializable]
[XmlType(nameof(Departments))]
public partial class Departments
{
    [XmlAttribute("Name_Department")]
    public string Name_Department { get; set; }
    [XmlAttribute("Department_ID")]
    public int Department_ID { get; set; }
}

2 个答案:

答案 0 :(得分:1)

您必须在属性窗口中将生成的属性设为私有。然后,您必须创建引用私有属性的新公共属性,并将属性添加到它们。在属性窗口中,您还可以重命名现在的私有属性,以便您可以将原始属性命名为原始属性:

生成的代码:

public partial class Departments
{
    private string Name_DepartmentCore { get; set; }
    private int Department_IDCore { get; set; }
}

自定义代码(在C#7.0中):

[Serializable]
[XmlType(nameof(Departments))]
public partial class Departments
{
    [XmlAttribute("Name_Department")]
    public string Name_Department {
        get => Name_DepartmentCore;
        set => Name_DepartmentCore = value;
    }
    [XmlAttribute("Department_ID")]
    public int Department_ID {
        get => Department_IDCore;
        set => Department_IDCore = value;
    }
}

答案 1 :(得分:1)

您首先使用数据库时会生成类模型,这是设计使然。

解决方案1。 Microsoft首先放弃对数据库的支持,并且edmx已被删除。一种解决方案是使用CODE FIRST。这将允许您使用属性来装饰POCO类。

解决方案2. 为XML序列化创建并行模型。