您好我有一个数据库设置如下:
User
属于Area
:
public class User : IEntity
{
public int UserId { get; set; }
public string Username { get; set; }
public int AreaId { get; set; }
public string CreatedByUserName { get; set; }
public DateTime CreatedDateTime { get; set; }
public string LastModifiedByUserName { get; set; }
public DateTime? LastModifiedDateTime { get; set; }
//Navigation properties
public virtual Area Area { get; set; }
}
它的Area
DefaultAdmin
类型为User
:
public class Area : IEntity
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual int DefaultAdminId { get; set; }
public string CreatedByUserName { get; set; }
public DateTime CreatedDateTime { get; set; }
public string LastModifiedByUserName { get; set; }
public DateTime? LastModifiedDateTime { get; set; }
}
// Navigation properties
public virtual User DefaultAdmin { get; set; }
}
甚至可以设置这样的东西吗?它们都需要彼此,所以当从这些表开始为空时,你永远不能创建一个,因为前者需要后者。
答案 0 :(得分:1)
假设基础表模式对外键有NOT NULL约束,那么这组关系在数据库方面也会有问题(即使将EntityFramework从图片中删除)
您将能够执行以下操作之一:
a)重新考虑区域和用户之间的关系
b)或者如果描述的关系确实准确:
上述步骤可以在部署数据库时作为数据库初始化脚本的一部分完成。一旦存在第一个区域和用户,您就可以在不违反所述要求的情况下添加更多区域。
我应该指出,这些关系实际上不是一对一,如问题标题所述:
希望有帮助...