This question is locked. New answers and comments are not allowed.
Hi there!
I have a table with only two uniqueidentifier-colums. It's the UserInRoles-table.
My mapping is the following:
The definition of the class and the id:
But, when I try to make a request, I get the following error:
That is right, because there's no column with name: ProChristUsersInRoles_id
I've tried different KeyGenerator-Types, but without any luck.
I don't know how to solve this problem. Can you help me, please?
Thanks in advance, Dieter
I have a table with only two uniqueidentifier-colums. It's the UserInRoles-table.
My mapping is the following:
private MappingConfiguration<ProChristFluentUserInRole> MapProChristUserInRoleTable() { var tableMapping = new MappingConfiguration<ProChristFluentUserInRole>(); tableMapping.MapType().ToTable("ProChristUsersInRoles"); tableMapping.HasIdentity(KeyGenerator.Verify); tableMapping.HasProperty(t => t.UserId).HasColumnType("uniqueidentifier").IsNotNullable(); tableMapping.HasProperty(t => t.RoleId).HasColumnType("uniqueidentifier").IsNotNullable(); return tableMapping; }The definition of the class and the id:
public class ProChristFluentUserInRoleIdentity : IObjectId { public Guid UserId { get; set; } public Guid RoleId { get; set; } public ProChristFluentUserInRoleIdentity() { UserId = Guid.NewGuid(); RoleId = Guid.NewGuid(); } public ProChristFluentUserInRoleIdentity(string s) { UserId = Guid.NewGuid(); RoleId = Guid.NewGuid(); var parts = s.Split('*'); Guid tUserId; if (Guid.TryParse(parts[0], out tUserId)) { UserId = tUserId; } Guid tRoleId; if (Guid.TryParse(parts[1], out tRoleId)) { RoleId = tRoleId; } } public override bool Equals(object o) { if (this == o) return true; if (!(o is ProChristFluentUserInRoleIdentity)) return false; var id = (ProChristFluentUserInRoleIdentity)o; if (UserId != id.UserId) return false; if (RoleId != id.RoleId) return false; return true; } public override int GetHashCode() { var result = 0; if (UserId != Guid.Empty) result += UserId.GetHashCode(); if (RoleId != Guid.Empty) result += RoleId.GetHashCode(); return result; } public override string ToString() { var buffer = new System.Text.StringBuilder(); buffer.Append(UserId).Append('*'); buffer.Append(RoleId); return buffer.ToString(); } } [Persistent(Identity = typeof(ProChristFluentUserInRoleIdentity))] public class ProChristFluentUserInRole { /// <summary> /// Gets or sets the user-Id. /// </summary> /// <value> /// The user-Id. /// </value> public Guid UserId { get; set; } /// <summary> /// Gets or sets the role-Id. /// </summary> /// <value> /// The role-Id. /// </value> public Guid RoleId { get; set; } }But, when I try to make a request, I get the following error:
[DataStoreException: Count(*) query failed: Telerik.OpenAccess.RT.sql.SQLException: Invalid column name 'ProChristUsersInRoles_id'.
Statement(s) could not be prepared.
at Telerik.OpenAccess.RT.Adonet2Generic.Impl.PreparedStatementImp.executeQuery()
at OpenAccessRuntime.Relational.conn.PooledPreparedStatement.executeQuery()
at OpenAccessRuntime.Relational.RelationalStorageManager.executeCount(RelationalCompiledQuery cq, QueryParameters parameters)
SELECT COUNT(1) FROM ( SELECT a.[ProChristUsersInRoles_id] AS COL1, a.[RoleId] AS COL2, a.[UserId] AS COL3 FROM [ProChristUsersInRoles] a WHERE a.[UserId] = ? AND a.[RoleId] = ? ) AS TMP_COUNT
That is right, because there's no column with name: ProChristUsersInRoles_id
I've tried different KeyGenerator-Types, but without any luck.
I don't know how to solve this problem. Can you help me, please?
Thanks in advance, Dieter