【如何在C#中为表设置外键?】教程文章相关的互联网学习教程文章

C#-由外键ef 4.3编写的第一个复合键代码【代码】

我在使用EF 4.3代码中的外键创建复合键时遇到问题.我想通过数据注释解决这个问题.我找不到正确的数据注释,该注释说EventID是Event的外键,并且是EventVote表中主键的一部分.我如何做到这一点public class EventVote {[Key, Column(Order = 0)][ForeignKey("Event")]public int EventID { get; set; }[Key, Column(Order = 1)][ForeignKey("User")]public int UserID { get; set; }[Required]public DateTime VoteTime { get; set; }...

如何在C#中为表设置外键?【代码】

我正在开发一个程序,该程序创建数据库并构建维度表和事实表.我在设置外键和约束时遇到麻烦. 这是我要执行的实际SQL:CREATE TABLE FactSalesOrders(ProductKey int NOT NULL REFERENCES DimProduct(ProductKey),CustomerKey int NOT NULL REFERENCES DimCustomer(CustomerKey),SalespersonKey int NOT NULL REFERENCES DimSalesperson(SalepersonKey),OrderDateKey int NOT NULL REFERENCES DimDate(DateKey),OrderNo int NOT NULL...

C#实体框架:如何更新记录和更改外键引用?【代码】

我有两个表: 客户(ID,客户名)项目(id,clientid,projecttitle)外键引用clientid-> client.id 当我像这样用EF加载项目时:thisProject = (from p in dataEntity.projects.Include("client")where p.id == INTVALUEselect p).FirstOrDefault();然后,我在thisProject中更改一些值,并想更改与不同客户端的关系,这将不允许我修改Projects表中的clientid字段. 希望我解释得足够好,谢谢解决方法:您需要执行以下操作:var thisProject = (f...

c#-在EF 4上映射外键而不创建新的Edmx文件

我通过取消选中用于创建外键实体的选项来创建edmx文件,因此我的外键字段没有映射.是否可以在不创建新edmx文件的情况下映射外键?如果可能的话.我从已经存在的数据库中创建了.edmx.我正在使用VS 2012.解决方法:右键单击edmx,从数据库中单击更新模型.那里有一个用于外键的复选框.那是您要找的东西吗?

c#-将表单导航属性迁移到实体框架中的外键【代码】

我目前有一个带有导航功能的EF实体,例如:public class Person {public int Id { get;set;};public string Name { get;set;};public virtual Office WorkingAt { get;set;} }public class Office {public int Id {get;set;}public string Name { get;set;}public string Address {get;set;} }我想从对WorkingAt使用“导航属性”更改为对Office对象ID的简单引用. 我该怎么做呢?我不清楚迁移路径应该是什么. 我的数据库中已经有数据...

c#-实体框架-代码优先-数据注释-不必要的外键列【代码】

实体框架在我的AccountCompanyRole表中创建了两个不必要的列. 客户公司public class AccountCompany {[Key, Column(Order = 0), ForeignKey("Account")]public int AccountID { get; set; }[Key, Column(Order = 1), ForeignKey("Company")]public int CompanyID { get; set; }public virtual Account Account { get; set; }public virtual Company Company { get; set; }public virtual ICollection<AccountCompanyRole> AccountC...

c# – 我为什么要创建外键约束?

我正在为Timesheet应用程序设计一个oracle数据库.我想知道是否真的有必要对表(Master和Child)进行外键约束. 我们知道理论上在表格上有一个适当的参照完整性是好的,但我们真的需要它们吗? 我听说外键使得数据库在每个DML操作上都是额外的工作,因为它必须检查FK的一致性.这会降低性能.但另一方面,在子表中插入新行之前删除主键的情况可能会有所帮助. 性能是时间表应用程序中的主要问题,并且将有大约250人在月末(可能在同一时间)填写...

c# – 实体框架:如何在自引用父子关系上指定外键列的名称?【代码】

我正在尝试指定列名以将“外键”映射到使用Fluent API.我正在连接到SQL Express的一个实例.我搜索过Stack Overflow和Google,但许多不同的配置示例给了我相同的结果. 产品类别public class Product {public int ProductId { get; set; }public string Name { get; set; }public int? ParentId { get; set; }public virtual Product ParentProduct { get; set; }public virtual ICollection<Product> ChildProducts { get; set; } }产...

c# – 如何通过导航属性访问外键ID属性时避免延迟加载?【代码】

我正在将项目从NHibernate转换为Entity Framework 6. 鉴于这个简单的模型:public class User {public int ID { get; set; }public string FullName { get; set; }public virtual Organization Organization { get; set; }// [...] }public class Organization {public int ID { get; set; }public string Name { get; set; }public virtual List<User> Users { get; set; }// [...] }通过组织导航属性访问主键(ID)将导致整个组织实...

c# – EF6:使用外键关系修改实体属性 – 我是否需要更改Id或相关对象或两者?【代码】

我通过修改Id来修改代码中实体的外键属性:ElementData.ServiceLevelId = parameter.ServiceLevelId;在持久化之后,我发现当相应的导航属性ServiceLevel意外为空时,这只能按预期工作.如果它仍然保留“旧”对象,则更改将不会命中数据库. 这意味着,我需要这样做ElementData.ServiceLevelId = parameter.ServiceLevelId; ElementData.ServiceLevel = null; //Force the update to the Database这是否意味着,更改对象比仅更改ID更“强”...

c# – 如何让Automapper通过Id字段上的内连接获取相关记录,而不是外键?【代码】

我一直在使用Automapper一段时间了,到目前为止它一切都很棒.但最近我遇到了一些“限制”(或缺乏我的知识).让我举两个类的简化示例:public class Consumable {public int ConsumableId { get; set; }public string Description { get; set; }public int SaleDepartmentId { get; set; } }public class SaleDepartment {public int SaleDepartmentId { get; set; }public string Description { get; set; } }这两个实体存储了Sale...

c# – 实体框架 – 外键未设置(0 / null)但导航属性不为null【代码】

我已经坚持这个问题很长一段时间了.我正在使用Fluent API Code-First来设计数据库(EF 6.1).问题是当我添加一个新对象时,我可以通过它们的导航属性访问该对象中的实体,但FK是0或NULL(分别是必需和可选的情况).它们是一对一的关系,我尝试过双向和单向. 下面是代码的一部分(简化,但只包括更少的实体):public class Template {public int Id { get; set; }public int XmlDocId{ get; set; }public virtual XmlDoc XmlDoc { get; set; ...

c# – 实体框架核心两个外键 – 相同表【代码】

我遇到了对同一个表有两个外键引用的问题.填充了外键id字段,但导航字段和列表(团队字段)不是 – 它们都是空的. 我的课程是:public class Team {public int Id { get; set; }public string Name { get; set; }public virtual ICollection<Fixture> HomeFixtures { get; set; }public virtual ICollection<Fixture> AwayFixtures { get; set; } }public class Fixture {public int Id { get; set; }public int HomeTeamId { get; se...

c# – 如何使用ASP.NET MVC中的Entity Framework将记录插入带有外键的表中【代码】

我是Entity Framework代码优先的新手.这是我在ASP.NET MVC中的学习,使用代码优先创建数据库. 我有两节课:public class Student {public int StudentId { get; set; }public string Name { get; set; }public int Standard { get; set; } public int SubjectId { get; set; } [ForeignKey("SubjectId")]public ICollection<Subject> Subjects { get; set; } }public class Subject {[Key]public int SubjectId{ get;...

c# – Entity Framework 6首先将多个表转换为一个外键关系代码【代码】

我想知道是否有人可以建议我如何在EF6中首先使用代码完成以下操作 如果我将Table_3作为List添加到Table_1&我的实体中的表_2. EF会自动为Table_3中的两个表生成外键列,而不是识别它们属于同一类型. 我的模型类设置如下.public interface IParent {int ID { get; set; }List<Table_3> Children { get; set; } }public class Table_1 : IParent {[Key]public int ID { get; set; }public string Name { get; set; }public virtual Lis...