【问题标题】:Add property to model object silverlight将属性添加到模型对象 silverlight
【发布时间】:2012-08-10 14:16:22
【问题描述】:

我想知道如何从我的模型中为实体对象添加属性。

[EdmEntityTypeAttribute(NamespaceName="MyObjectModel", Name="MyObject")]
    [Serializable()]
    [DataContractAttribute(IsReference=true)]
    public partial class MyObject: EntityObject
{
private int myVar;

        public int MyProperty
        {
            get { return myVar; }
            set { myVar = value; }
        }
}

当我这样做时,新属性不会出现在 MyObject 中,但我没有收到任何错误。

我应该怎么做?

谢谢!

【问题讨论】:

    标签: silverlight entity-framework


    【解决方案1】:

    当我看到EdmEntityTypeAttribute 属性时,我假设您正在修改Databasemodel.Designer.cs 文件。正如这个文件的标题所说:

    // <auto-generated>
    //    This code was generated from a template.
    //
    //    Manual changes to this file may cause unexpected behavior in your application.
    //    Manual changes to this file will be overwritten if the code is regenerated.
    // </auto-generated>
    

    此文件是自动生成的,绝不能手动修改。因此,当重新生成此文件时(可能在编译时),您的属性基本上会被删除。

    只需创建一个新文件来添加您的属性:

    例如MyObject.cs:

    public partial class MyObject
    {
        public int MyProperty { get; set; }
    }
    

    请注意,partial 关键字旨在允许在多个文件中分离一个类的定义。

    【讨论】:

    • 谢谢,但是当执行此操作然后我创建一个新的 MyObject mo = new MyObject,我无法访问 MyObject.MyProperty。它不会显示在可能的选项列表中。
    • @Oliver 请添加更多背景(即发布一些代码:您在哪里编写 MyObject mo = new MyObject、您如何定义 MyObject、哪个程序集、哪个命名空间...)
    • 我在 MainPage.xaml.cs、客户端、命名空间 MyProject 中编写了 MyObject mo...。 MyObject 是在我的 silverlight 业务应用程序的 web 项目中定义的,命名空间是 MyProject.Web.Models。
    • Oliver 正如 Ken 所说,命名空间应该与您的实体框架类“MyObject”所具有的相同..
    猜你喜欢
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 2015-11-15
    • 2018-01-27
    • 1970-01-01
    相关资源
    最近更新 更多