Entity Frameworkでストアドプロシージャを使用しています。私は簡単に親の値と@idパラメータによって、その子を取得しますが、今回は私がこの絵Entity Frameworkのストアドプロシージャから親テーブルと子テーブルの日付を取得する方法
var command = myContext.Database.Connection.CreateCommand();
command.CommandText = "[dbo].[GetNewsForUser] @id";
command.Parameters.Add(new SqlParameter("@id", "9f13f132-4536-4111-a73e-61a97a52d226"));
try
{
myContext.Database.Connection.Open();
var reader = command.ExecuteReader();
var objectContext = ((IObjectContextAdapter)myContext).ObjectContext;
UserNews.UserName = objectContext.Translate<string>(reader).FirstOrDefault();
// to get nex select set from Stored Procedure
reader.NextResult();
UserNews.NewsInfos = objectContext.Translate<NewsInfo>(reader).ToList();
}
finally
{
myContext.Database.Connection.Close();
}
}
CREATE Procedure GetNewsForUser
@id nvarchar(50)
as
BEGIN
select UserName from AspNetUsers where id= @id
select NewsId, NewsTitle from News where UserId = @id
End
よう
各親オブジェクトの親テーブルオブジェクトと子のリストを取得したいです私のC#コードとt-sqlを親テーブルオブジェクトと各親オブジェクトの子リストのLISTを達成するように変更してください。
私はこれらをデータで埋めたい
IList<GetAllNewsForUser> li = null;
GetAllNewsForUser g = new GetAllNewsForUser();
g.UserName = "";
g.NewsInfos = null;
li.Add(g);
はあなたが必要なもの
ありがとうございましたが、私はビジネスオブジェクトをストアドプロシージャから埋めることができますか?このように UserNews.UserName = objectContext.Translate(リーダー).FirstOrDefault(); //ストアドプロシージャからnexセレクトセットを取得する reader.NextResult(); UserNews.NewsInfos = objectContext.Translate (リーダー).ToList(); IList li = null; GetAllNewsForUser g =新しいGetAllNewsForUser(); g.UserName = ""; g.NewsInfos = null; li.Add(g); –
Lucia
私はあなたの質問に答えるために上記の答えを編集しました。 – ErnestoDeLucia
よく私はこのように各ユーザーにニュースリストを割り当てたい: usersLi = objectContext.Translate(リーダー)。ToList(); foreachの(usersLiにおけるVAR項目) {GetAllNewsForUser II =新しいGetAllNewsForUser()。 ii.UserName = item.UserName; ii.NewsInfos = item.NewsInfos; ; FinalList.Add(ii); } –
Lucia