Orm 冷藏罐';不要设定一对一的关系

Orm 冷藏罐';不要设定一对一的关系,orm,one-to-one,coolstorage,Orm,One To One,Coolstorage,问题是,我不明白如何在两个对象之间建立一对一的关系,第一个对象与第二个对象建立链接,第二个对象与第一个对象建立链接。代码如下: [MapTo("Model")] public class Model : CSObject<Model, int> { [OneToOne(LocalKey = "ModelID", ForeignKey = "ModelID")] public Product Product { get { return (Product)GetFiel

问题是,我不明白如何在两个对象之间建立一对一的关系,第一个对象与第二个对象建立链接,第二个对象与第一个对象建立链接。代码如下:

[MapTo("Model")]
public class Model : CSObject<Model, int>
{
    [OneToOne(LocalKey = "ModelID", ForeignKey = "ModelID")]
    public Product Product { get { return (Product)GetField ("Product"); } set { SetField ("Product", value); } } 
}

[MapTo("Product")]
public class Product : CSObject<Product, int>
{
    [OneToOne(LocalKey = "ProductID", ForeignKey = "ProductID")]
    public Model Model { get { return (Model)GetField ("Model"); } set { SetField ("Model", value); } }
}

你可以建立两种关系[许多关系]。这在您的场景中会起作用。

恐怕不行。manytone模式意味着表中有一个列,该列的id为“One”。这意味着我们必须在模型表中有一个ProductID列,反之亦然。当我们将产品的模型属性设置为某个模型时,我们会更新产品表的列“ModelID”,但模型表的“ProductID”列保持不变。此外,这种方法在尝试保存时可能会导致错误,因为它似乎是一个无限循环。
[OneToMany]
public CSList<Product> _ProductList { get { return (CSList<Product>)GetField ("_ProductList"); } set { SetField ("_ProductList", value); } }

[NotMapped]
public Product Product {
    get {
        CSList<Product> list = this._ProductList;
        if (list.Count > 0)
            return list [0];
        return null;
    }
    set {
        if (value != null) {
            CSList<Product> list = this._ProductList;
            list.RemoveAll ();
            list.Add (value);
        }
    }
}