Я использую Massive и у меня есть таблица членов.В моем классе Members у меня есть метод find, чтобы найти члена по электронной почте:
public class Members : DynamicModel
{
public Members(): base("TSConnection", "Members", "Id"){}
public dynamic Find(string email)
{
dynamic result = new ExpandoObject();
result.Success = false;
try
{
result.Member = this.Single(where: "Email=@0", args: email);
result.Success = result.Member != null;
}
catch (Exception ex)
{
result.Message = ex.Message;
}
return result;
}
}
Это возвращает все, как ожидалось, и в отдельном модульном тестировании, которое result.Member.Id
показывает, что оно заполнено данными.
В отдельном классе, Адреса.Я пытаюсь использовать этот метод для проверки того, что пользователь существует, и для извлечения Member.Id для использования при вставке адреса для конкретного члена:
public class Addresses : DynamicModel
{
public Addresses() : base("TS", "Addresses", "Id") { }
public dynamic Create(string email, string type, string address1, string address2, string city, string state, int countryId, string postcode)
{
var members = new Members();
dynamic result = new ExpandoObject();
result.Success = false;
//var member = members.Find(email);
result.Member = members.Single(where: "Email=@0", args: email);
dynamic address = new ExpandoObject();
if (result.Member != null)
{
address.Id = this.Insert(new {
MemberId = result.Member.Id,
AddressTypeId = (int)AddressType.Account,
Address1 = address1,
Address2 = address2,
City = city,
State = state,
Country = countryId,
Postcode = postcode
});
result.Address = address.Id != 0 ? address : null;
result.Success = address.Id != 0;
}
return result;
}
}
В строке с вкладками, которая читает var member = members.Find(email);
thisвозвращает исключение RuntimeBinderException при попытке доступа к member.Member.Id
.Я вхожу в код, и метод Find «возвращает» правильные данные, но они не передаются члену переменной.Странно, когда я использую код для извлечения пользователя в строке ниже:
result.Member = members.Single(where: "Email=@0", args: email);
Работает нормально.Не очень хорошо, чтобы держать вещи СУХОЙ, хотя.Что происходит и есть ли способ использовать метод Find из моего класса Members внутри моего класса Addresses?
Lloyd