领域主键未存储

时间:2018-07-10 08:24:14

标签: database xamarin realm primary-key realm-mobile-platform

数据模型:

public class Product : RealmObject
    {
        [PrimaryKey,JsonProperty(PropertyName = "productId")]
        public int ProductId { get; set; }
        [JsonProperty(PropertyName = "parentId")]
        public int ParentId { get; set; }
        [JsonProperty(PropertyName = "productType")]
        public string ProductType { get; set; }
    }

用于将产品添加到数据库的方法:

public void AddSampleProduct(Product product)
        {
            var _realm = Realm.GetInstance();
            using (var transaction = _realm.BeginWrite())
            {
                var entry = _realm.Add(product);
                transaction.Commit();
            }
        }

用于检索产品的方法:

public Product GetProductById(int id)
        {
            Product product = null;
            var _realm = Realm.GetInstance();
            product = _realm.Find<Product>(id);
            var p = _realm.Find<Product>(id);
            return product;
        }

获取产品列表的方法:

public List<Product> GetProductList()
        {
            List<Product> productList = new List<Product>();
            var _realm = Realm.GetInstance();
            productList = _realm.All<Product>().ToList();
            return productList;
        }

每当我尝试使用id来获取产品时,它都会返回null,同时,如果我尝试获取列表,则会获取所有产品,但主键属性的所有产品的值均为0。主键可能没有存储,因此无法使用id提取单个产品。

此外,在模型类中,我尝试在单独的行中定义主键和Json属性,如下所述。

public class Product : RealmObject
    {
        [PrimaryKey]
        [JsonProperty(PropertyName = "productId")]
        public int ProductId { get; set; }
        [JsonProperty(PropertyName = "parentId")]
        public int ParentId { get; set; }
        [JsonProperty(PropertyName = "productType")]
        public string ProductType { get; set; }
    }

0 个答案:

没有答案