का उपयोग कर रहा डेटाबेस से कुछ डेटा प्राप्त है और एक डीटीओ वापस जाने के लिए एक बहुत ही बुनियादी जरूरत है। मैंने पाया कि एनएचबर्ननेट और "प्रोजेक्टिंग" का उपयोग करके कई टेबलों में शामिल होने के लिए, एक डीटीओ को कोड का थोड़ा सा होना है। कई उदाहरण को देखने के बाद, सबसे जो मुझे शून्य मान के साथ एक डीटीओ छोड़ने काम नहीं किया, मैं निम्नलिखित और यदि आप nHibernate निंजा के बाहर वहाँ मुझे बता सकते हैं अगर वहाँ एक बेहतर तरीका है सोच रहा था के साथ कैम।nHibernate कई तालिकाओं में शामिल होने और AliasToBean ट्रांसफार्मर
public IOpenIdUser GetOpenIdUser(string claimedIdentifier, IOpenIdUser openIdUserDto)
{
User user = null;
OpenIdUser openIdUser = null;
Profile profile = null;
UserType userType = null;
return
SessionWrapper.Session.QueryOver(() => user).JoinAlias(() => user.Profiles,() => profile).
JoinAlias(() => user.OpenIdUsers,() => openIdUser).JoinAlias(() => user.UserType,() => userType)
.Where(() => user.UserName == claimedIdentifier)
.SelectList(l => l
.Select(x => openIdUser.OpenIdUserId).WithAlias(() => openIdUser.OpenIdUserId)
.Select(x => user.UserId).WithAlias(() => openIdUserDto.UserId)
.Select(x => openIdUser.OpenIdClaimedIdentifier).WithAlias(
() => openIdUserDto.ClaimedIdentifier)
.Select(x => openIdUser.OpenIdFriendlyIdentifier).WithAlias(
() => openIdUserDto.FriendlyIdentifier)
.Select(x => openIdUser.OpenIdEndPoint).WithAlias(
() => openIdUserDto.OpenIdEndPoint)
.Select(x => user.UserName).WithAlias(() => openIdUserDto.UserName)
.Select(x => userType.Type).WithAlias(() => openIdUserDto.UserType)
.Select(x => profile.DisplayName).WithAlias(() => openIdUserDto.DisplayName)
.Select(x => profile.EmailAddress).WithAlias(() => openIdUserDto.EmailAddress)
.Select(x => openIdUser.DateCreated).WithAlias(() => openIdUserDto.DateCreated)
.Select(x => openIdUser.LastUpdated).WithAlias(() => openIdUserDto.LastUpdated)
.Select(x => openIdUser.UsageCount).WithAlias(() => openIdUserDto.UsageCount)
).TransformUsing(Transformers.AliasToBean<OpenIdUserDto>()).Future<OpenIdUserDto>().Single();
}
यह विधि मेरे उपयोगकर्ता रिपोजिटरी में बैठती है और इसे मेरे उपयोगकर्ता सेवा द्वारा बुलाया जाता है। कृपया यह नहीं कि यह वास्तव में काम करता है, मुझे लगता है कि यह इतना आसान काम के लिए अधिक है। कृपया ध्यान दें कि मैं इसके लिए नया हूं इसलिए यदि यह कोड क्रोधित है तो मैं पहले से माफ़ी मांगता हूं।
मैं इस किसी के लिए काम किया लगता है। मुझे वोट मिला .. W00t! – CrazyCoderz