我正在使用 Database First EF5 迈出第一步,我试图在 EF5 ORM 范式中从经典的 ,等中重现我的知识,但我被困住了:DataTable
DataAdapter
我过去经常使用DataGridsViews
和Trees
填充它们Stored Procedures
。我用来显示的信息对应于多个表/实体。
例如,假设一个博客应用程序。像这样的帖子,用户等:
表:
Post {Id, Subject, Body, Date, Author}
User {Id, Name, Email, Pwd}
为了加入所有表格并计算一些值,我们有一个StoredProcedure
. 此 SP 从表和 2 个运行时计算值返回Post
属性User
:
Post.Subject, Post.Body, Post.Categories, User.Name, DaysSincePublished, IsAuthorOnline
或者让它更容易:
Post.*, User.*, DaysSincePublished, IsAuthorOnline
问题:
- 是否可以一次将先前的记录集适合多个实体(
Post
和User
)?并用它填充 DataGridView? - 是否可以将其放入动态创建的实体中?在这种情况下,是否可以从 DataGridView 中更新(绑定)它。
- 我对问题的处理方法错误吗?
我尝试过类似Context.ObjectContext.Translate<TEntity>()
orContext.Database.SqlQuery<TEntity>(storedProcedure, parameterArray);
但一次只返回 1 个实体的方法。
注意:
使用此示例可以忘记StoredProcedure
并进行linq
查询。但在实际场景中,我有超过 10 个表和子查询的查询,几次没有 FK,......并且非常关心服务器性能,存储过程是必须的。