如何使用“数据库优先”建立一对一关系?

德鲁怀亚特

生成模型时,许多关系会自动映射。但是,某些关系是“不正确的”(或者至少不是我想要的)或丢失。

我毫不怀疑这是由于数据库设计不佳造成的,但是基于我在该项目中的角色,我无能为力。但是,我可以在应用程序代码中做些什么来修复映射?

这是一个例子:

我想将StoreProductId属性映射到StoreProducts表。

桌子

ProductAttributePriceAdjustment

public partial class ProductAttributePriceAdjustment
{
        public int AdjustmentId { get; set; }
        public int StoreProductId { get; set; }
        public int StoreId { get; set; }
        public string ProductId { get; set; }
        public Nullable<int> ProductSizeId { get; set; }
        public Nullable<decimal> Adjustment { get; set; }
        public int PointsAdjustment { get; set; }
        public Nullable<int> ProductColorID { get; set; }

        public StoreProduct StoreProduct { get; set; }
}

店铺产品

public partial class StoreProduct
{
    public int StoreProductID { get; set; }
    public int StoreID { get; set; }
    public string ProductID { get; set; }
    public bool Featured { get; set; }
    public bool Clearance { get; set; }
}

我认为,当我尝试调用类似以下内容的内容时:

@adjustment.StoreProduct.ProductID

我收到此错误:

Object reference not set to an instance of an object.

更新1

我遵循了Frans的建议并将我的模型更新为:

public partial class ProductAttributePriceAdjustment
{
    public int AdjustmentId { get; set; }
    public int StoreProductId { get; set; }
    public int StoreId { get; set; }
    public string ProductId { get; set; }
    public Nullable<int> ProductSizeId { get; set; }
    public Nullable<decimal> Adjustment { get; set; }
    public int PointsAdjustment { get; set; }
    public Nullable<int> ProductColorID { get; set; }

    public virtual StoreProduct StoreProduct { get; set; }
}

但仍然出现相同的错误。

埃里克·冯肯布施

您不能在这样的实体框架中创建1:1映射。不支持。

实体框架仅支持1:1映射,其中两个表都具有共享的主键(即,它们具有相同的主键,并且其中一个是另一个的外键)。在您所处的情况下,实际上是在创建1对1的对象,因为不能保证StoreProductId是唯一的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

数据库设计一对一关系

来自分类Dev

一对一关系的数据库设计

来自分类Dev

数据库设计一对一关系

来自分类Dev

如何在关系数据库中的一对多关系上定义一对一关系?

来自分类Dev

建立一对一关系

来自分类Dev

EF代码优先:使用数据注释设置可选的一对一关系

来自分类Dev

数据库设计:来自单个表的一对一关系?

来自分类Dev

如何使用一对一关系关联模型

来自分类Dev

实体框架代码优先一对一关系

来自分类Dev

代码优先的可选一对一关系

来自分类Dev

无法与Sequelize建立一对一关系

来自分类Dev

模式中建立一对一关系的方法?

来自分类Dev

一对一关系与建立联系

来自分类Dev

无法在实体之间建立一对一关系

来自分类Dev

一对一数据库优先EF

来自分类Dev

应用迁移到数据库的一对一关系时,由实体框架生成的迁移崩溃

来自分类Dev

学说–如何在两个实体之间建立一对一关系

来自分类Dev

Laravel Seeding 使用 Factory 建立一对一关系

来自分类Dev

以一对一关系插入数据-域

来自分类Dev

如何为一列设计具有一对一或一对多关系的数据库?

来自分类Dev

如何为一列设计具有一对一或一对多关系的数据库?

来自分类Dev

在Hibernate中如何避免1 + n数据库调用双向可选的一对一关联?

来自分类Dev

如何删除一对一关系中的实体?

来自分类Dev

使用Python 2.76输出一对一关系

来自分类Dev

使用INTERLEAVE表进行一对一关系

来自分类Dev

在休眠中使用一对一关系删除

来自分类Dev

如何使用Realm确定一对一关系的逆关系?

来自分类Dev

插入一对一关系

来自分类Dev

休眠一对一关系

Related 相关文章

热门标签

归档