6

Temel olarak 2 Varlık ve 2 TableControllers'dan oluşan bir azure mobil hizmet oluşturdum. Bu iki varlığın 1: 1 ilişkisi vardır.Azure mobil hizmetinde başka bir varlığa atıfta bulunarak varlık oluşturma

public class Entity1 : EntityData 
{ 
    public int Value { get; set; } 
    public DateTime Date { get; set; } 
    public string Name { get; set; } 
    public virtual Entity2 Reference { get; set; } 
} 

public class Entity2 : EntityData 
{ 
    public string Name { get; set; } 
} 

Denetleyiciler, standart iskele oluşturucu denetleyicileridir.

{ 
    "value": 1, 
    "date": "2015-04-27T06:51:47.641Z", 
    "name": "name", 
    "project": { 
    "id": "32aec44a282e42b7bc51096052335dad", 
    } 
} 

bunu mı:

{"$id":"1","message":"The operation failed due to a conflict: 'Violation of 
PRIMARY KEY constraint 'PK_Service.Entity2'. Cannot insert 
duplicate key in object 'Service.Entity2'. The duplicate key 
value is (32aec44a282e42b7bc51096052335dad).\r\nThe statement has been 
terminated.'."} 

ben isteği gövdesine aşağıdaki JSON kullandı: Ben ben şu mesaj almak bir zaten varolan ENTITY2 referansı olan bir ENTITY1 örneğini eklemeye çalıştığınızda .NET Code First/Azure Mobile Service'de var olan bir varlığı referans olarak kullanmak mümkün mü? Bu daha fazla bir EF CodeFirst veya masmavi mobil servisiyle ilgili soru olup olmadığından emin değilim.

Teşekkürler.

cevap

0

Varsayılan davranış, Entity1 öğesinin iç içe geçmiş başvurunun ekini de denemesidir. Bu değer zaten eklenmişse, bunun gibi bir çakışma meydana gelebilir. Zaten takılı olarak

Seçeneklerden biri fazlası için https://msdn.microsoft.com/en-us/data/jj592676.aspx

ait "bağlamına varolan varlık bağlanması" bölümünde olduğu gibi bu blog yazısı yararlı olabilir, iç içe öğeyi tedavisinde insert kodunu değiştirmek olurdu : http://blogs.msdn.com/b/azuremobile/archive/2014/06/18/insert-update-related-data-with-1-n-relationship-using-net-backend-azure-mobile-services.aspx

+0

şudur varsa biliyor musunuz Güncellemeler için aynı? Nesne ilgili verileri içerdiğinde aynı sorunu bir Yama/Güncelleştirme ile alıyorum. Telefon numaralarını içeren bir profilim var. Mobil cihazdaki profili güncellediğimde ve değişiklikleri azure'ye bastığımda, aynı 409 çatışmasını alıyorum çünkü telefon numaralarını ekleyemiyorum çünkü zaten varlar. Neden ilgili verileri bir güncelleme/yama üzerine yerleştirmeye çalışıyor? Bunu önlemek için ne geçersiz kılabilirim? – jmichas

0

Aynı şeyi yapmaya çalışıyorduk, ancak ilgili varlıkların güncellenmesiyle ilgilenmedik. Eğer ilgili öğelerin başvurular içeren bir varlık güncellemek istiyorsanız, sadece bağlam onları ekleyebilirsiniz ve herhangi PK ihlali hataları almazsınız: Yani

enter image description here