Skip to content

Commit 11ad6cf

Browse files
committed
Update the DatabaseTimeStamp sample to reflect proper saving of Knowledge table (both in Server and Mobile). DatabaseInstanceId field is now a standard field in the table (not the primary key) to avoid letter-casing problems during sync.
1 parent c4a79b8 commit 11ad6cf

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

Samples/DatabaseTimeStamp/MobileSample/Models/Knowledge.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ namespace MobileSample.Models
77
public class Knowledge : Realms.RealmObject
88
{
99
[Realms.PrimaryKey()]
10+
public string Id { get; set; } = Guid.NewGuid().ToString();
11+
1012
public string DatabaseInstanceId { get; set; }
1113
public bool IsLocal { get; set; }
1214
public long MaxTimeStamp { get; set; }

Samples/DatabaseTimeStamp/WebSample/Models/CustomSyncEngine.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,24 +34,24 @@ public override List<KnowledgeInfo> GetAllKnowledgeInfos(string synchronizationI
3434
{
3535
return databaseContext.Knowledges.Where(w => w.SynchronizationID == synchronizationId).Select(s => new KnowledgeInfo()
3636
{
37-
DatabaseInstanceId = s.DatabaseInstanceId.ToString(),
37+
DatabaseInstanceId = s.DatabaseInstanceId,
3838
IsLocal = s.IsLocal,
3939
MaxTimeStamp = s.MaxTimeStamp
4040
}).ToList();
4141
}
4242

4343
public override void CreateOrUpdateKnowledgeInfo(KnowledgeInfo knowledgeInfo, string synchronizationId, Dictionary<string, object> customInfo)
4444
{
45-
Guid id = new Guid(knowledgeInfo.DatabaseInstanceId);
46-
Knowledge knowledge = databaseContext.Knowledges.Where(w => w.SynchronizationID == synchronizationId && w.DatabaseInstanceId == id).FirstOrDefault();
45+
Knowledge knowledge = databaseContext.Knowledges.Where(w => w.SynchronizationID == synchronizationId && w.DatabaseInstanceId == knowledgeInfo.DatabaseInstanceId).FirstOrDefault();
4746
if (knowledge == null)
4847
{
4948
knowledge = new Knowledge();
50-
knowledge.DatabaseInstanceId = id;
49+
knowledge.ID = Guid.NewGuid();
5150
knowledge.SynchronizationID = synchronizationId;
51+
knowledge.DatabaseInstanceId = knowledgeInfo.DatabaseInstanceId;
5252
databaseContext.Add(knowledge);
5353
databaseContext.SaveChanges();
54-
knowledge = databaseContext.Knowledges.Where(w => w.SynchronizationID == synchronizationId && w.DatabaseInstanceId == id).First();
54+
knowledge = databaseContext.Knowledges.Where(w => w.SynchronizationID == synchronizationId && w.DatabaseInstanceId == knowledgeInfo.DatabaseInstanceId).First();
5555
}
5656
knowledge.IsLocal = knowledgeInfo.IsLocal;
5757
knowledge.MaxTimeStamp = knowledgeInfo.MaxTimeStamp;

Samples/DatabaseTimeStamp/WebSample/Models/Knowledge.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@ public class Knowledge
1212
{
1313
[Key]
1414
[DatabaseGenerated(DatabaseGeneratedOption.None)]
15-
public Guid DatabaseInstanceId { get; set; }
15+
public Guid ID { get; set; }
1616

1717
public string SynchronizationID { get; set; }
1818

19+
public string DatabaseInstanceId { get; set; }
20+
1921
public bool IsLocal { get; set; }
2022

2123
public long MaxTimeStamp { get; set; }

0 commit comments

Comments
 (0)