У меня проблема с определением того, как c # и LINQ решают общую проблему обработки структуры данных, которая не обязательно возвращает структуру таблицы, а вместо этого - набор результатов.
У меня есть хранимая процедура, которая работает, и я включил ее в мой DBML
[Function(Name="dbo.p_GetObject")]
public int p_GetObject([Parameter(Name="ObjectType", DbType="NVarChar(200)")] string objectType, [Parameter(Name="ItemState", DbType="Bit")] System.Nullable<bool> itemState, [Parameter(Name="IsPublished", DbType="Bit")] System.Nullable<bool> isPublished)
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), objectType, itemState, isPublished);
return ((int)(result.ReturnValue));
}
В dbml говорится, что тип возвращаемого значения (Нет), и это может быть ключевой проблемой. Однако у меня нет объекта DBML, который соответствует результирующему набору.
SP принимает три параметра и возвращает результирующий набор с тремя столбцами (ID, Имя, Значение) с несколькими строками. Я могу создать для этого объект данных и назвать его resultSet
Когда я пишу вызов функции для этого, я застреваю:
public List<resultset> GetObject(string objectType, bool itemState, bool isPublished)
{
MyDataContext.p_GetObject(objectType, itemState, isPublished);
}
Мои вопросы:
как мне вызвать контекстный вызов данных для хранимой процедуры, чтобы заполнить мой объект resultSet? Есть ли лучший подход? Каким должен быть тип возвращаемого значения? Представление SQL? Ищете хорошие предложения ...