Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 定义外键的实体框架_C#_Linq_Entity Framework_Entity Framework 4 - Fatal编程技术网

C# 定义外键的实体框架

C# 定义外键的实体框架,c#,linq,entity-framework,entity-framework-4,C#,Linq,Entity Framework,Entity Framework 4,有没有一种方法可以使用实体框架为表分配外键?我使用数据库优先(使用EDMX模型文件)方法制定了下表规范: classDate classDate_Id(pk) classDate_reference classDate_start class_Id class_Id(pk) class_Name classs_description 表1: classDate classDate_Id(pk) classDate_reference classDate_start class_I

有没有一种方法可以使用实体框架为表分配外键?我使用数据库优先(使用EDMX模型文件)方法制定了下表规范:

classDate   
classDate_Id(pk)
classDate_reference
classDate_start
class_Id
class_Id(pk)
class_Name
classs_description
表1:

classDate   
classDate_Id(pk)
classDate_reference
classDate_start
class_Id
class_Id(pk)
class_Name
classs_description
表2:

classDate   
classDate_Id(pk)
classDate_reference
classDate_start
class_Id
class_Id(pk)
class_Name
classs_description
在创建表时(classdate),无法将类_id指定为外键。实体表(classdate)本身将class_Id作为列(普通)而不是外键。我想将这个指定为外键。所以是否可以指定为外键

classDate   
classDate_Id(pk)
classDate_reference
classDate_start
class_Id
class_Id(pk)
class_Name
classs_description
这是我在
tsgentitesmodel.designer.cs
中找到的代码。我需要在这里换车吗

classDate   
classDate_Id(pk)
classDate_reference
classDate_start
class_Id
class_Id(pk)
class_Name
classs_description
  public partial class tsgEntities : ObjectContext
  {
    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    public ObjectSet<classdate> classdates
    {
        get
        {
            if ((_classdates == null))
            {
                _classdates = base.CreateObjectSet<classdate>("classdates");
            }
            return _classdates;
        }
    }
    private ObjectSet<classdate> _classdates;

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    public ObjectSet<@class> classes
    {
        get
        {
            if ((_classes == null))
            {
                _classes = base.CreateObjectSet<@class>("classes");
            }
            return _classes;
        }
    }
    private ObjectSet<@class> _classes;
 }

     /// <summary>
    /// Deprecated Method for adding a new object to the classdates EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
    /// </summary>
    public void AddToclassdates(classdate classdate)
    {
        base.AddObject("classdates", classdate);
    }

    /// <summary>
    /// Deprecated Method for adding a new object to the classes EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
    /// </summary>
    public void AddToclasses(@class @class)
    {
        base.AddObject("classes", @class);
    }
公共部分类tsgenties:ObjectContext
{
/// 
///没有可用的元数据文档。
/// 
公共对象集类日期
{
得到
{
如果((_classdates==null))
{
_classdates=base.CreateObjectSet(“classdates”);
}
返回日期;
}
}
私有对象集_classdates;
/// 
///没有可用的元数据文档。
/// 
公共对象集类
{
得到
{
如果((_class==null))
{
_classes=base.CreateObjectSet(“类”);
}
返回类;
}
}
私有对象集类;
}
/// 
///用于向classdates EntitySet添加新对象的已弃用方法。请考虑使用关联的ObjutStt属性的.Add方法。
/// 
公共无效AddToclassdates(classdate classdate)
{
base.AddObject(“classdates”,classdate);
}
/// 
///用于将新对象添加到类EntitySet的已弃用方法。请考虑使用关联的ObjutStt属性的.Add方法。
/// 
公共void addtoclass(@class@class)
{
base.AddObject(“类”、@class);
}
我已经找到了下面的代码,我需要在这里更改吗

classDate   
classDate_Id(pk)
classDate_reference
classDate_start
class_Id
class_Id(pk)
class_Name
classs_description
 public partial class classdate : EntityObject
{
    #region Factory Method

    /// <summary>
    /// Create a new classdate object.
    /// </summary>
    /// <param name="classDate_End">Initial value of the classDate_End property.</param>
    /// <param name="classDate_Id">Initial value of the classDate_Id property.</param>
    /// <param name="classDate_Reference">Initial value of the classDate_Reference property.</param>
    /// <param name="classDate_Start">Initial value of the classDate_Start property.</param>
    /// <param name="class_Id">Initial value of the class_Id property.</param>
    public static classdate Createclassdate(global::System.String classDate_End, global::System.Int32 classDate_Id, global::System.String classDate_Reference, global::System.String classDate_Start, global::System.Int32 class_Id)
    {
        classdate classdate = new classdate();
        classdate.classDate_End = classDate_End;
        classdate.classDate_Id = classDate_Id;
        classdate.classDate_Reference = classDate_Reference;
        classdate.classDate_Start = classDate_Start;
        classdate.class_Id = class_Id;
        return classdate;
    }

    [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
    [DataMemberAttribute()]
    public global::System.Int32 class_Id
    {
        get
        {
            return _class_Id;
        }
        set
        {
            Onclass_IdChanging(value);
            ReportPropertyChanging("class_Id");
            _class_Id = StructuralObject.SetValidValue(value);
            ReportPropertyChanged("class_Id");
            Onclass_IdChanged();
        }
    }
    private global::System.Int32 _class_Id;
    partial void Onclass_IdChanging(global::System.Int32 value);
    partial void Onclass_IdChanged();

  // same like this for all columns in calss data table 
public分部类classdate:EntityObject
{
#区域工厂法
/// 
///创建一个新的classdate对象。
/// 
///classDate\u End属性的初始值。
///classDate_Id属性的初始值。
///classDate_引用属性的初始值。
///classDate\u Start属性的初始值。
///class_Id属性的初始值。
公共静态类日期Createclassdate(全局::System.String类日期\u结束,全局::System.Int32类日期\u Id,全局::System.String类日期\u引用,全局::System.String类日期\u开始,全局::System.Int32类日期\u Id)
{
classdate classdate=新的classdate();
classdate.classdate\u End=classdate\u End;
classdate.classdate\u Id=classdate\u Id;
classdate.classdate\u Reference=classdate\u Reference;
classdate.classdate\u Start=classdate\u Start;
classdate.class\u Id=class\u Id;
返回类日期;
}
[EdmScalarPropertyAttribute(EntityKeyProperty=false,IsNullable=false)]
[DataMemberAttribute()]
公共全局::System.Int32类\u Id
{
得到
{
返回类Id;
}
设置
{
Onclass_IdChanging(值);
报告财产变更(“类别Id”);
_class_Id=StructuralObject.SetValidValue(值);
ReportPropertyChanged(“class_Id”);
Onclass_IdChanged();
}
}
私有全局::System.Int32_class_Id;
类_IdChanging时部分无效(全局::System.Int32值);
类_IdChanged()上的部分无效;
//calss数据表中的所有列都与此相同
下面是类实体的代码:

classDate   
classDate_Id(pk)
classDate_reference
classDate_start
class_Id
class_Id(pk)
class_Name
classs_description
  /// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmEntityTypeAttribute(NamespaceName="tsgEntities", Name="class")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class @class : EntityObject
{
    #region Factory Method

    /// <summary>
    /// Create a new class object.
    /// </summary>
    /// <param name="class_Description">Initial value of the class_Description property.</param>
    /// <param name="class_Id">Initial value of the class_Id property.</param>
    /// <param name="class_Name">Initial value of the class_Name property.</param>
    /// <param name="class_NumSessions">Initial value of the class_NumSessions property.</param>
    /// <param name="class_Reference">Initial value of the class_Reference property.</param>
    public static @class Createclass(global::System.String class_Description, global::System.Int32 class_Id, global::System.String class_Name, global::System.String class_NumSessions, global::System.String class_Reference)
    {
        @class @class = new @class();
        @class.class_Description = class_Description;
        @class.class_Id = class_Id;
        @class.class_Name = class_Name;
        @class.class_NumSessions = class_NumSessions;
        @class.class_Reference = class_Reference;
        return @class;
    }

    #endregion
    #region Primitive Properties

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
    [DataMemberAttribute()]
    public global::System.String class_Description
    {
        get
        {
            return _class_Description;
        }
        set
        {
            Onclass_DescriptionChanging(value);
            ReportPropertyChanging("class_Description");
            _class_Description = StructuralObject.SetValidValue(value, false);
            ReportPropertyChanged("class_Description");
            Onclass_DescriptionChanged();
        }
    }
    private global::System.String _class_Description;
    partial void Onclass_DescriptionChanging(global::System.String value);
    partial void Onclass_DescriptionChanged();


    //same like this for all coulmns 
//
///没有可用的元数据文档。
/// 
[EdmEntityTypeAttribute(NamespaceName=“tsgenties”,Name=“class”)]
[可序列化()]
[DataContractAttribute(IsReference=true)]
公共分部类@class:EntityObject
{
#区域工厂法
/// 
///创建一个新的类对象。
/// 
///class_Description属性的初始值。
///class_Id属性的初始值。
///class_Name属性的初始值。
///class_NumSessions属性的初始值。
///类_引用属性的初始值。
public static@class Createclass(全局::System.String class_描述,全局::System.Int32 class_Id,全局::System.String class_名称,全局::System.String class_NumSessions,全局::System.String class_引用)
{
@class@class=new@class();
@class.class\u Description=class\u Description;
@class.class\u Id=class\u Id;
@class.class\u Name=class\u Name;
@class.class_NumSessions=class_NumSessions;
@class.class\u Reference=class\u Reference;
返回@class;
}
#端区
#区域基本属性
/// 
///没有可用的元数据文档。
/// 
[EdmScalarPropertyAttribute(EntityKeyProperty=false,IsNullable=false)]
[DataMemberAttribute()]
公共全局::System.String类\u说明
{
得到
{
返回类描述;
}
设置
{
Onclass_说明更改(值);
报告财产变更(“类别描述”);
_class_Description=StructuralObject.SetValidValue(值,false);
报告财产变更(“类别描述”);
Onclass_DescriptionChanged();
}
}
private global::System.String\u class\u Description;
类_descriptionChange(全局::System.String值)上的部分无效;
类_DescriptionChanged()上的部分无效;
//所有Coulmn都是这样

如果您想在
class\u Id
上的
Table2
Table1
之间创建关系,则该列必须是
Table1
中的主键,或者您需要在其上放置唯一索引:

classDate   
classDate_Id(pk)
classDate_reference
classDate_start
class_Id
class_Id(pk)
class_Name
classs_description
CREATE UNIQUE INDEX UIX01_ClassDates ON dbo.ClassDates(class_Id)