我无法使用导航属性定义以下数据库结构:
Table: Batch
PK: Id
FK: Model_ID (can be also null)
Table: Model
PK: Id
no FKs related to Batch
所以这就像1/0到1/0的关系。 Model
和& Batch
可以在不相互了解的情况下存在。请注意,我只需要'批次'而不是'模型'中的FK列。在“模型”中,我只想获得相关Batch
(如果存在)。但是有些型号和一些批次相互连接。
我定义了以下内容,但它是
public class BaseData {
public Guid Id {get; set; }
public Guid? ModelId {get; set; }
public ModelData ModelId { get; set; }
}
public class ModelData {
public Guid Id {get; set; }
public Guid? BatchId { get; set; }
public BatchData Batch { get; set; }
}
如果删除一个导航属性,我可以定义正确的数据库结构 -
来自BatchData Batch
的{{1}}。
但是,我想在两个类中都有导航属性,是否可能?
我尝试了不同的配置,但都没有效果。 我试过的一个例子是:
ModalConfig:
HasOptional(x => x.Batch) .WithRequired(x => x.Model);
BatchConfig:
ModelData
这不会在DB中创建FK。
答案 0 :(得分:0)
依赖PK id也是FK id。
public class BatchData {
[ForeignKey("Model")]
public Guid Id {get; set; }
// public Guid? ModelId {get; set; }
// public ModelData ModelId { get; set; }
public ModelData Model { get; set; }
}
校长在模型中不能拥有FK ID。
public class ModelData {
public Guid Id {get; set; }
// public Guid? BatchId { get; set; }
public BatchData Batch { get; set; }
}
这将在没有流畅的api配置的情况下工作。