0

とのエンティティを持つエンティティモデルがPersonありLogPersonます。LogPerson2つの追加フィールド(LogPersonID、 )があることを除いて、これらは同じですCreateDate。Linqコードに続くVB.NETコードが両方の可能なタイプで動作する必要がないように、をにキャストするLogPersonにはどうすればよいですか?Person

例えば:

dim p as person
If useLog then
   p = From a In LogPerson Where ID = x
Else
   p = From a In Person Where ID = x
End If

textbox1.text = p.firstname
4

2 に答える 2

0
I am WRITING THE SOLUTION IN C#....

person p;
if(uselog)
{
var per = from pobj in LogPerson
          where pobj.ID= x
          select new person{
          firstname = pobj.firstname,
          lastname = pobj.lastname,
          };
}else
{
var per = from pobj in Person
    where pobj.ID= x
    select new person{
    firstname = pobj.firstname,
    lastname = pobj.lastname,
    };
}
p = per.first();
}


textbox1.text = p.firstname
于 2012-09-18T16:24:30.167 に答える
0

箱から出してすぐに使える方法はありません。サードパーティのツール/ライブラリを使用しない最も簡単な方法は、次のようにSelectメソッドを使用してプロパティを手動でマップすることです。

IEnumerable<Person> people = ...;

IEnumerable<LogPerson> logPeople = people.Select(p => new LogPerson { 
    Name = p.Name,
    Age = p.Age,
    ...
});

もちろん、これは面倒なので、この種の操作を実行する必要のあるフィールドや場所が多数ある場合は、AutoMapperなどの自動マッピングライブラリを調べることをお勧めします。

于 2012-09-18T16:05:25.387 に答える