ServiceStack, проблема OrmLite, сохраняющая связанные объекты

Я долго искал решение этой проблемы и ничего не нашел.

Я пытаюсь отправить клиентское DTO и связанное с ним контактное лицо с моим веб-сервисом ServiceStack, но получаю ошибку. Я следовал вместе с тестами OrmLite, расположенными здесь.

Мои DTO:

public partial class Client {
    [AutoIncrement]
    public int ID { get; set; }
    public string Street { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string ZipCode { get; set; }
    public decimal? Latitude { get; set; }
    public decimal? Longitude { get; set; }
    public string HomePhoneAreaCode { get; set; }
    public string HomePhoneExchange { get; set; }
    public string HomePhoneNumber { get; set; }
    public string HomeFaxAreaCode { get; set; }
    public string HomeFaxExchange { get; set; }
    public string HomeFaxNumber { get; set; }
    public string KeyNumber { get; set; }
    public string AlarmCode { get; set; }
    public string GarageDoorCode { get; set; }
    public string MyAPCUsername { get; set; }
    public string MyAPCPassword { get; set; }
    public bool IsActive { get; set; }
    public string Notes { get; set; }

    [Reference]
    public List<Contact> Contacts { get; set; }
}

public partial class Contact {
    [AutoIncrement]
    public int ID { get; set; }
    public int ClientID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string WorkPhoneAreaCode { get; set; }
    public string WorkPhoneExchange { get; set; }
    public string WorkPhoneNumber { get; set; }
    public string MobilePhoneAreaCode { get; set; }
    public string MobilePhoneExchange { get; set; }
    public string MobilePhoneNumber { get; set; }
    public bool CanSMS { get; set; }
    public string PersonalEmail { get; set; }
    public string WorkEmail { get; set; }
    public string AlternateEmail { get; set; }
    public int Ordinal { get; set; }

    [Reference]
    public Client Client { get; set; }
}

В моем сервисе:

    public int Post(Client client) {
        Db.Save(client, references: true);

        return client.ID;
    }

И мой тестовый код:

var newClient = new Client {
    Street = "1234 Any Avenue",
    City = "Gorham",
    State = "ME",
    ZipCode = "22222",
    HomePhoneAreaCode = "123",
    HomePhoneExchange = "456",
    HomePhoneNumber = "7890",
    HomeFaxAreaCode = "098",
    HomeFaxExchange = "765",
    HomeFaxNumber = "4321",
    KeyNumber = "99",
    AlarmCode = "1234",
    GarageDoorCode = "abcd",
    IsActive = true,
    Notes = "These are the notes for the new client.",

    Contacts = new List<Contact>() {
        new Contact { FirstName = "John", LastName = "Doe", PersonalEmail = "john.doe@gmail.com", CanSMS = true, Ordinal = 1 },
        new Contact { FirstName = "Jane", LastName = "Smith", PersonalEmail = "jane.smith@gmail.com", CanSMS = false, Ordinal = 2 }
    },
};


// POST entity 
int newClientID = serviceClient.Post<int>(newClient);

Последняя строка выдает ошибку - WebServiceException, сообщение "Не удается найти свойство"ClientId "для типа" Контакт ""

Я пробовал разные комбинации атрибутов Reference, References и ForeignKey безрезультатно.

Любая помощь будет оценена.

Спасибо,

сойка

0 ответов

Другие вопросы по тегам