财产添加XML属性在DB首先

问题描述:

我:财产添加XML属性在DB首先

实体框架数据库第一

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

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

我需要:

如何添加属性属性以序列化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; } 
} 

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

生成的代码:

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; 
    } 
} 
+0

一个非常有趣的方式。谢谢 –

+0

请注意,如果您想要使用这些属性进行查询,您仍然需要访问原始属性。 – Sefe

当您首先使用数据库时,即根据设计生成您的类模型。

解决方案1.微软首先放弃了对数据库的支持,并且edmx被取消了。一种解决方案是使用CODE FIRST代替。这将允许你用属性装饰你的POCO类。

解决方案2.创建一个仅用于XML序列化的并行模型。

+0

这个数据库很旧(甚至有* .dbf)。不幸的是,我不能在那里改变任何东西。必须适应这个事实。谢谢 –