これは、nHibernateとFluentnHibernateについての私の理解にすぎないという面白い感じがします。
一連のエンティティクラスに基づいてスキーマをエクスポートする小さなコンソールアプリケーションがあります。私がこれを行うまで、すべてがうまく機能します:
public virtual int UserId { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual string Email { get; set; }
public virtual UserType UserType { get; set; }
public virtual Client Client { get; set; }
public virtual string UniqueIdentifier { get; set; }
public virtual IList<UserAttribute> UserAttributes { get; set; }
/** CODE IN QUESTION **/
public virtual string GetAttributeValue(string name)
{
var value = UserAttributes.FirstOrDefault(ua => ua.AttributeDefinition.AttributeName == name);
if (value != null)
return value.Value;
else
return string.Empty;
}
関数をコメントアウトすると、すべてがうまく機能します。関数returnstring.Emptyを持っているだけでも、すべてが機能します。ただし、行を追加すると、次のようになります。
var value = UserAttributes.FirstOrDefault(ua => ua.AttributeDefinition.AttributeName == name);
このエラーですべてが壊れます:
"The entity '<>c__DisplayClass1' doesn't have an Id mapped. Use the Id method to map your identity property. For example: Id(x => x.Id)."
自動マッピングを使用しています。このエラーの原因は何ですか?エラーは正常に理解できますが、匿名クラスで失敗しているようです。これがどのように連携するのかについて、私は悪い誤解を持っていますか?私は、実践と哲学の両方において、間違いなくnHibernateの初心者です。啓発されたい!