我首先使用代码设计我的数据库,我想我需要一些帮助.
我收到此错误:
在表'Invoices'上引入FOREIGN KEY约束'SalesOrder_Invoices'可能会导致循环或多个级联路径.指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束.
无法创建约束.查看以前的错误.
我想尝试以下关系/键:
--> = 1 to Many Relationship
Run Code Online (Sandbox Code Playgroud)
我试图通过以下标准来定义它们:
<ClassName><PrimaryKeyID>
Run Code Online (Sandbox Code Playgroud)
示例:Customer具有ID属性,因此在CustomerLocation我定义外键时如下:
Public Property CustomerID AS Integer
Run Code Online (Sandbox Code Playgroud)
我所要做的就是定义外键是否正确?我是否还必须为我定义的每个键设置导航属性?
并且,我可以在对象的同一主键上没有多个外键吗?
更新
所以要定义一个关系,你使用ClassName.PrimaryKeyProperty?或者你使用导航属性?或两者?困惑!!
更新2
因此,为了使关系发挥作用,你必须定义双方......我想.
Public Class Customer
Public Property ID AS Integer
Public Overrideable Property Locations AS ICollection(OF CustomerLocation) …Run Code Online (Sandbox Code Playgroud) 关于这个问题有很多问题,但我无法解决我的问题.有人可以看看这个:
我有一个Office表Doctor和Secretary表有一对多的关系.两个最后的表都是从Employee表中派生的,该Users表与创建的预定义表具有共享主键关系sqlmembershipprovider.Users桌子和Roles桌子之间似乎有很多关系,我没有参与其中.
我的问题是在我的Employee表和那个Users表之间创建一个(零,一) - (一)关系,然后我以它们之间的共享主键关系和引发的错误结束.(这个问题有更好的解决方案吗?)
这是错误:
在表'aspnet_UsersInRoles'上引入FOREIGN KEY约束'FK_dbo.aspnet_UsersInRoles_dbo.aspnet_Users_UserId'可能会导致循环或多个级联路径.指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束.无法创建约束.查看以前的错误.
这是反向工程后的代码和会员代码:
public class Office
{
public Office()
{
this.Doctors = new HashSet<Doctor>();
this.Secretaries = new HashSet<Secretary>();
}
[Key]
public System.Guid OfficeId { get; set; }
public virtual ICollection<Doctor> Doctors { get; set; }
public virtual ICollection<Secretary> Secretaries { get; set; }
}
public class Employee …Run Code Online (Sandbox Code Playgroud) 如何在模型设计中指定ON DELETE NO ACTION外键约束?
目前,我有:
public class Status
{
[Required]
public int StatusId { get; set; }
[Required]
[DisplayName("Status")]
public string Name { get; set; }
}
public class Restuarant
{
public int RestaurantId { get; set; }
[Required]
public string Name { get; set; }
[Required]
[EmailAddress]
public string Email { get; set; }
[Required]
public string Telephone { get; set; }
[Required]
public int StatusId { get; set; }
public List<Menu> Menus { get; set; }
// NAVIGATION …Run Code Online (Sandbox Code Playgroud) 我需要了解在EF Core 2全局范围内禁用级联删除的方法.任何帮助都是适当的.
在EF 6.x中,我们使用以下代码来禁用对两者OneToMany和ManyToMany现实的级联删除:
builder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
builder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();
Run Code Online (Sandbox Code Playgroud) 我正在使用EF6 Code First.我有两节课:
public class Player
{
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
[Key]
public int Id { get; set; }
[Required, MinLength(2, ErrorMessage = "Player name must be at least 2 characters length")]
public string Name { get; set; }
[Required]
public int TeamClubId { get; set; }
[Required]
public int TeamNationalId { get; set; }
[Required, ForeignKey("TeamClubId")]
public virtual Team Club { get; set; }
[Required, ForeignKey("TeamNationalId")]
public virtual Team National { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和:
public class Team
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public …Run Code Online (Sandbox Code Playgroud) 我有一个Booking类,它有一个预订联系人(a Person)和一组导航属性(People),它们通过连接表链接到另一组导航属性(Bookings)Person.如何Booking为预订联系人关系启用级联删除生成表格?当我将它从流畅的API代码中删除时(启用了级联删除的默认设置),我从迁移中收到以下错误消息:
在'BookingPeople'表上引入FOREIGN KEY约束'FK_dbo.BookingPeople_dbo.People_PersonID'可能会导致循环或多个级联路径.指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束.
无法创建约束或索引.查看以前的错误.
modelBuilder.Entity<Person>()
.HasMany<Booking>(s => s.aBookings)
.WithRequired(s => s.Contact)
.HasForeignKey(s => s.ContactId);
modelBuilder.Entity<Booking>()
.HasMany(t => t.People)
.WithMany(t => t.Bookings)
.Map(m => {
m.ToTable("BookingPeople");
m.MapLeftKey("BookingID");
m.MapRightKey("PersonID");
});
Run Code Online (Sandbox Code Playgroud)