Могу ли я использовать ADO.NET Data Services с источником данных LINQ-to-DataSet?
-
06-07-2019 - |
Вопрос
У нас есть приложение, которое сильно зависит от хранимых процедур и нетипизированных наборов данных. Я хотел бы сохранить эту гибкость, но использовать возможности REST ADO.NET Data Services. Тем не менее, когда я пытаюсь использовать следующий код для предоставления DataSet ADO.NET Data Services:
namespace NewTechnologyDemo {
public class MyDataSource {
public IQueryable<DataRow> TheDataSet {
get {
using (SqlConnection connection = new SqlConnection("server=MySQLServer;integrated security=sspi;database=MyDatabase")) {
using (SqlCommand command = new SqlCommand("select * from Orders", connection)) {
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataSet ds = new DataSet();
adapter.Fill(ds);
return ds.Tables[0].AsEnumerable().AsQueryable();
}
}
}
}
}
}
Я получаю ошибку:
The server encountered an error processing the request. The exception message is 'On
data context type 'MyDataSource', there is a top IQueryable property 'TheDataSet' whose
element type is not an entity type. Make sure that the IQueryable property is of entity
type or specify the IgnoreProperties attribute on the data context type to ignore this
property.'.
Я увидел здесь , что ADO.NET Data Services хочет, чтобы я украсил объект с помощью DataServiceKey , но я не думаю, что я все равно могу это сделать.
Есть идеи о том, как я могу заставить это работать? Я чувствую, что это должно быть возможно ...
Решение
Я сомневаюсь, что DataSet
будет иметь достаточно сильные метаданные, чтобы быть полезными, и вам понадобятся классы. Я сделал несколько горшков (начиная здесь ) о том, как заставить его работать с LINQ-to-SQL, что может оказаться полезным.