c# - EF 4,如何添加部分类

标签 c# .net oracle entity-framework-4 partial-classes

我需要扩展我的 EF 部分类,因为我想添加一些功能来使用 Oracle 的序列,但是我真的不知道如何使用这个部分类,我制作了一个单独的 .cs 文件和名称它作为我自动生成的类之一,如下所示:

namespace GlassStoreDAL
{
    public partial class CAR 
    {
        private int _sequences;
        public int sequences
        {
            get { return _sequences; }
            set { _sequences = value; }
        }
    }  
}

现在我假设,在我的 BLL - 它引用了 GlassStoreDAL - 我可以找到我的“序列”属性,但显然出了点问题,我将不胜感激任何帮助。

这是我生成的部分类,我是否应该也有 sequences 属性?

[EdmEntityTypeAttribute(NamespaceName="Model", Name="CAR")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class CAR : EntityObject
{
    #region Factory Method
    /// <summary>
    /// Create a new CAR object.
    /// </summary>
    /// <param name="id">Initial value of the ID property.</param>
    public static CAR CreateCAR(global::System.Decimal id)
    {
        CAR cAR = new CAR();
        cAR.ID = id;
        return cAR;
    }

    #endregion
    #region Primitive Properties

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
    [DataMemberAttribute()]
    public global::System.Decimal ID
    {
        get
        {
            return _ID;
        }
        set
        {
            if (_ID != value)
            {
                OnIDChanging(value);
                ReportPropertyChanging("ID");
                _ID = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("ID");
                OnIDChanged();
            }
        }
    }

    private global::System.Decimal _ID;
    partial void OnIDChanging(global::System.Decimal value);
    partial void OnIDChanged();

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
    [DataMemberAttribute()]
    public global::System.String NAME
    {
        get
        {
            return _NAME;
        }
        set
        {
            OnNAMEChanging(value);
            ReportPropertyChanging("NAME");
            _NAME = StructuralObject.SetValidValue(value, true);
            ReportPropertyChanged("NAME");
            OnNAMEChanged();
        }
    }

    private global::System.String _NAME;
    partial void OnNAMEChanging(global::System.String value);
    partial void OnNAMEChanged();

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
    [DataMemberAttribute()]
    public global::System.String MODEL
    {
        get
        {
            return _MODEL;
        }
        set
        {
            OnMODELChanging(value);
            ReportPropertyChanging("MODEL");
            _MODEL = StructuralObject.SetValidValue(value, true);
            ReportPropertyChanged("MODEL");
            OnMODELChanged();
        }
    }

    private global::System.String _MODEL;
    partial void OnMODELChanging(global::System.String value);
    partial void OnMODELChanged();

    #endregion

    #region Navigation Properties

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [XmlIgnoreAttribute()]
    [SoapIgnoreAttribute()]
    [DataMemberAttribute()]
    [EdmRelationshipNavigationPropertyAttribute("Model", 
        "SYS_C009618", "GLASS")]
    public EntityCollection<GLASS> GLASSes
    {
        get
        {
            return ((IEntityWithRelationships)this).RelationshipManager.
                GetRelatedCollection<GLASS>("Model.SYS_C009618", "GLASS");
        }
        set
        {
            if ((value != null))
            {
                ((IEntityWithRelationships)this).RelationshipManager.
                    InitializeRelatedCollection<GLASS>("Model.SYS_C009618", 
                        "GLASS", value);
            }
        }
    }

    #endregion
}

最佳答案

总结大量评论线索...

检查部分是否正确连接在一起:

  • 确保两个类定义在同一个命名空间和程序集中。
  • 确保至少其中一个被声明为部分(大多数生成的类,包括 EF 生成的类)。
  • 检查以确保新创建的部分可以看到以前的成员,以确认部分匹配。

客户端在不同的二进制文件中(这里就是这种情况)

  • 确保客户项目二进制文件/引用是最新的(执行干净构建/删除二进制副本/重新创建引用),具体取决于您的项目情况。

对于这种情况,最后的检查是最重要的,解决了问题。

关于c# - EF 4,如何添加部分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5962235/

相关文章:

java - 在 JDBC 插入中用随机数填充的 BigDecimal 变量

c# - 如何在 linq-to-sql 中返回匿名类型

c# - Blazor 服务器端的 FromResult 或 IServiceScopeFactory

c# - 如何使用 C# 在 Excel 文件中创建第二个工作表

.net - 无法加载文件或程序集 'AssemblyName PublicKeyToken=null' 或其依赖项之一

sql - 使用 EAV 表连接/旋转项目

c# - 如何为复杂类型设置 DataKeyNames?

c# - 有没有办法在 C# 中针对 XML/HTML 使用 JQuery 样式选择器?

.net - 自动组织Visual Studio标签吗?

oracle - 我在 Amazon RDS 中有哪些使用 'fixed_date' 的选项?