0

私はトピックと呼ばれるコードの最初のpocoクラスを持っています。ここから、メッセージ数や、トピック内でメッセージを作成した最後のユーザーなど、いくつかの追加の集計フィールドを含む topicWith という継承クラスを作成しました。私のコントローラーでは、最初に topicWith をフェッチしてから、基本トピックを +1 で更新して、それが読み取られた回数を増やしたいと考えています。topicWith オブジェクトを保存しようとすると、エラーが発生します。エンティティ タイプ TopicWith は、現在のコンテキストのモデルの一部ではありません。オブジェクトを「トピック」に明示的にキャストしたにもかかわらず、これを取得します

これは私がやっていることの短いバージョンです。

[NotMapped]
public class TopicWith : Topic
{
    public virtual int NumberOfMessages { get; set; }
}

var topics = from topic in context.Topics
                select
                    new TopicWith
                        {
                            ForumID = topic.ForumID,
                            TopicID = topic.TopicID,
                            Subject = topic.Subject,
                            Hide = topic.Hide,
                            Locked = topic.Locked,
                            Icon = topic.Icon,
                            NoOfViews = topic.NoOfViews,
                            Priority = topic.Priority,
                            Forum = topic.Forum,
                            Messages = topic.Messages,
                            NumberOfMessages = topic.Messages.Count()
                        };
var topicWith = topics.FirstOrDefault();
topicWith.NoOfViews++;
context.Topics.Add((Topic) topicWith);

この問題を解決する最善の方法は何ですか?

4

1 に答える 1

2

考えられる解決策

var topics = from topic in context.Topics
            select
                new {
                        Topic = topic,
                        NumberOfMessages = topic.Messages.Count()
                    };
var topicWith = topics.FirstOrDefault();
topicWith.Topic.NoOfViews++;
context.Topics.Add(topicWith.Topic);
于 2013-03-10T19:12:13.430 に答える