대용량 데이터베이스의 경우 장치와 서버간에 동기화 기능을 만듭니다. 목록 테이블이 많습니다 (드롭 다운/선택 도구의 항목). 나는 코드를 많이 쓰고 싶지 않아 내가 SQLite는에있는 장치에 우아한 해결책 :C# 일반 T 함수 여기서 T는 문자열에서입니다.
을 찾고 있어요 나는 데이터베이스 A의 저장하면
public class NameTable : IBusinessEntity {
public int Id { get; set; } = 0;
public string Description { get; set; }
}
같은 테이블 목록 정의 장치 구조
public class SyncResult {
public int DeviceId { get; set; }
public int ServerId { get; set; }
public string TableName { get; set; }
public string Description { get; set; }
}
처럼 서버로부터 새로운 레코드를 수신 할 때 새로운 레코드 (항목) I 지금이 함수
public int SaveItem<T>(T item) where T : IBusinessEntity {
lock (locker) {
if (item.Id != 0) {
database.Update(item);
return item.Id;
}
else {
return database.Insert(item);
}
}
}
전화
그럼 저장하고 싶습니다 (DeviceId == 0 인 경우 새 레코드를 삽입하거나 기존 항목을 업데이트하고 싶습니다).
내 질문은 : 어떻게 T이 SyncResult에서 TABLENAME입니다SaveItem 호출 할 수 있습니까?
는 사전에 어떤 도움을 주셔서 감사합니다 (I는 그것을위한 맥주를 제공 할 수 있습니다!)SaveItem
는 MyDatabase
클래스의 구성원입니다. 기본적으로 내 문제는 문자열로 SaveItem<T>
T 전달하는 것입니다.
분명히 내 문제를 설명했는지 알 수 없습니다.
Entity Framework를 사용하고 있습니까? –
이 경우 아니요. Xamarin Forms의 SQLite입니다. – Enrico
T가 문자열이되고 싶습니까? 왜 그냥 문자열을 사용하지? 하나의 유형으로 제한하는 경우 일반적이어서는 안됩니다. – Krythic