
У меня есть две таблицы в БД
Таблица 1 «DocumentFieldValues», которая имеет 2 столбца FieldId и Value и
Таблица 2 «Поле», имеющее первичный ключ FieldId и FieldName
Я заранее знаю FieldName и хочу сделать их Ключом. в этом будет около 100 пар ключ / значение.
Attempt 1
var attempt1= db.DocumentFieldValues.Where(x => x.PolicyDocumentId == id).Include(x => x.Field ).ToList();
Попытка 2
var documentFieldValues = this.db.DocumentFieldValues.Where(x => x.PolicyDocumentId == id).ToArray();
var bindingStringAndValue = from documentFieldValue in documentFieldValues
join field in this.db.Fields on documentFieldValue.FieldId equals field.FieldId
select new { field.BindingString, documentFieldValue.Value } ;
Мне в основном нужно иметь возможность делать data.FieldName и извлекать значение во внешнем интерфейсе, используя ajax-вызов jQuery для внутреннего интерфейса, просто нужно передать эти данные обратно в правильном формате.
Любая помощь очень ценится.
Я только что сделал это, и это работает, но разве это лучший способ?
У меня только 4 месяца опыта работы и только 1 год без самоучки с бэкэнд-кодом, так что не ненавидите LOL Я чувствую, что с точки зрения производительности это довольно плохо
IDictionary<string, string> dict = new Dictionary<string, string>();
foreach (var item in bindingStringAndValue)
{
dict.Add(item.BindingString, item.Value);
}
Попытка 4, это лучший способ, с которым я столкнулся, спасибо @Orel Eraki
var dict = db.DocumentFieldValues
.Where(dfv => dfv.PolicyDocumentId == id).Include(dfv => dfv.Field)
.ToDictionary(dfv => dfv.Field.BindingString, dfv => dfv.Value);