【c# – 实体框架:如何在自引用父子关系上指定外键列的名称?】教程文章相关的互联网学习教程文章

c# – Entity Framework自动外键人口【代码】

是否有任何方法可以强制Entity Framework在将实体添加到上下文时立即填充外键,而不是将其延迟,直到上下文发生其他情况为止?使用数据绑定显示引用的实体时,此默认行为不是很有用. 只需从上下文中引用任何DbSet就足以强制EF填充添加的Children的Parent和Parent_Name.但是,SaveChanges似乎迫使EF填充Reference或Reference_Name. 我真的想用[Required] ttribute标记Reference_Name,所以它在数据库中将是Null,但是如果我这样做,当我尝试...

c# – 在.Net Core / EF Core中设置多个同类的外键【代码】

我正在构建一个.Net Core Web应用程序,将旧的旧版Access ADP / ADE前端替换为项目管理SQL Server数据库.但是,原始数据库的构建器没有设置大量的外键关系,而是支持在SQL视图中完成所有操作.我希望用这个应用程序来补救的东西. 我想要确保我的头部在设置外键时处于同一类类型.例如,我有以下课程. Project.csusing System; using System.Collections.Generic;namespace ProjectLogic.Models {public class Project{public int Id { ge...

c# – 调用OrganizationService.Associate()和在Dynamics CRM中显式设置实体的外键字段有什么区别?

Associate()操作是否有一些额外的逻辑?我想以编程方式将大量数据从一个Dynamics CRM实例复制到另一个实例.而且我认为制作行的简单副本会更简单(从根对象开始以避免破坏约束). 此外,是否可以克隆系统用户和业务单位实例(行)? 先感谢您! PS:通过克隆一行(使用OrganizationServiceProxy),我的意思是: >获取行的所有属性(来自Dynamics CRM 1)> e = new entity(),设置所有属性(包括id),然后是service.create(e)(在Dynamics CRM 2上...

c# – 数据传输对象中的属性是否应扩展外键或仅显示其主键

我有一个EmployeeDTO,它在数据库中表示一个Employee记录. Employee表与Department有关系,与Permission有1对多的关系. 在我的实体中,这些表示为完全展开的Department属性和完全展开的权限对象的List. 问题是DTO是否应该完全扩展DepartmentId的DepartmentDTO属性? DTO是否应该具有PermissionId列表的完全扩展的PermissionDTO属性列表?解决方法:就像设计中的一切一样,这取决于您的需求. >如果你需要经常看到和绑定到子属性,你想要使...

c# – 实体框架外键约束【代码】

我仍然在使用EF.我在我的项目中使用代码优先方法并偶然发现了以下问题. 我有以下对象:public class Employee {public int EmployeeId { get; set; }public int BusinessUnitId { get; set; }public virtual BusinessUnit BusinessUnit { get; set; } }public class Quote {public int QuoteId { get; set; }[DisplayName("Business Unit")]public int BusinessUnitId { get; set; }[DisplayName("Responsible Employee")]public i...

c# – 实体框架代码第一个多列外键【代码】

首先使用代码我设计了3个类:class User { public Int32 ID {get;set;} public virtual ICollection<UserCityDetail> {get;set;}public Int32 MainCityID {get;set;}public UserCityDetail MainCityDetail {get;set;}}class City{public Int32 ID {get;set;}... }class UserCityDetail{[Key, Column(Order = 0)]public Int32 UserID {get;set;}[Key, Column(Order = 1)]public Int32 CityID{get;set;}... }所以基本上我有一个...

c# – 在同一个表的主键上创建外键约束的不良做法?

我试图在我的数据库中做一个注释表,并将子注释存储在同一个表中.我会在名为“ParentId”的列上放置一个外键约束,该列将链接到CommentId列,该列是同一个表的主键.如果它是父评论,那么我将为ParentId赋予它null.这是不好的做法吗?如果是这样,有什么更好的方法来解决这个问题.解决方法:这可以.您需要考虑的一件事是,如果删除带有子项的评论该怎么办. FK约束将阻止删除,并且级联删除的常见解决方案在这里似乎不合适,也不会使父引用为N...

c# – 实体框架中的两列外键【代码】

我有两个表:operation和operation_category_element_relation. 操作表具有复合主键operation_id:bigint和date_data:nvarchar(10). operation_category_element_relation也包含这些列.基于这两列的表之间存在关系.添加ADO.NET实体数据模式后,我收到两个错误:Error 13101: The types of all properties in the Dependent Role of a referential constraint must be the same as the corresponding property types in the Princip...

c# – 为什么EF生成外键?【代码】

我需要一对一(可选).protected override void OnModelCreating(DbModelBuilder modelBuilder) {modelBuilder.Entity<PinnacleAccount>().HasKey(x => x.Id);modelBuilder.Entity<PinnacleAccount>().HasRequired(x => x.User).WithOptional(x => x.PinnacleAccount);base.OnModelCreating(modelBuilder); }当我运行’Add-Migration Init’时,我检查生成的迁移并查看:CreateTable("dbo.PinnacleAccounts",c => new{Id = c.Int(null...

c# – 通过外键在Entity Framework 6中的另一个表中获取记录【代码】

我需要将所有座位都附加到特定的预订中. 我有这些课程:public class Seat {public Guid Id { get; set; }public string RowNumber { get; set; }public int SeatNumber { get; set; } }public class ReservationSeat {public Guid Id { get; set; }public Guid ReservationId { get; set; }public Guid SeatId { get; set; }public Reservation Reservation { get; set; }public Seat Seat { get; set; } }我试过这个linq到实体声...

c# – 如何以一对一/零关系指定外键?【代码】

我有一个父实体和一个子实体. 在DB中,父级的主键是p_p_id并且子项中的外键与p_p_id相同 数据库中没有外键约束. 实体在各自的类中设置属性,指向彼此. 家长班public virtual ChildProject ThisChildProject { get; set; }儿童班public virtual ParentProject ThisParentProjection { get; set; }这些属性上没有注释,也没有任何类的ID. 在配置中,我试图在孩子中进行映射.HasRequired(i => i.ThisParentProject).WithOptional(o => o.T...

c# – 如何检查列是否已经是外键?【代码】

我有名为Person的表和名为ID的列如何检查ID是否已经是FOREIGN KEY因为我想使用此代码:ALTER TABLE Person ADD FOREIGN KEY(ID) REFERENCES Job(ID) ON DELETE CASCADE ON UPDATE CASCADE但如果ID已经是FOREIGN KEY,它会给我以下错误“可能导致循环或多个级联路径”,因为有两个级联的条件…如何检查此字段是否为FOREIGN KEY以避免此错误?解决方法:您需要查看INFORMATION SCHEMA视图 虽然它没有那么完整.这是您想要的最终查询:SEL...

c# – 在模拟的EF6数据库中通过外键加载相关数据【代码】

最近我开始了一个模拟各种神经网络应用的项目.为了处理大量涉及的数据,我使用Entity Framework Model第一种方法实现了SQL-Server后端.此外,我已经非常喜欢测试驱动开发(TDD)学科.但是为了做到这一点,我需要一个模拟数据库来运行我的测试.经过多次搜索,我找到了商业和开源的多种解决方案.在这一点上值得注意的是,在涉及数据库相关主题时,我是新手.因此,我选择使用内存模拟中描述的msdn来描述EF6框架,如here所述. Pff,现在我们得到了...

c# – 如何忽略Entity Framework Core SQLite数据库中的外键约束?【代码】

外键约束失败使用SQLite和Entity Framework Core 我在桌子上有关系[Table("organizations")] public class Organizations {[Column("id")]public int Id { get; set; }[Column("parent_id")][ForeignKey("id")]public int? ParentId { get; set; }[Column("person_id")]public int? PersonId { get; set; }}public DbSet<Organizations> Organizations { get; set; }using (var db = new SQLiteDbContext($"Filename={dbPath};")) ...

框架 - 相关标签