C# - Fluent NHibernate Many-to-many Mapping With Auto-generated Pk Instead Of Composite Key?
Feb 2, 2010
I'm working on a RoleProvider in .NET, using Fluent NHibernate to map tables in an Oracle 9.2 database.
The problem is that the many-to-many table connecting users and roles uses a primary key generated from a sequence, as opposed to a composite key. I can't really change this, because I'm writing it to be implemented in a larger existing system.
Here is my UserMap:
public UserMap()
{
this.Table("USR");[code].....
Yet, this is giving me the error:
Type 'FluentNHibernate.Cfg.FluentConfigurationException' in assembly 'FluentNHibernate, Version=1.0.0.593, Culture=neutral, PublicKeyToken=8aa435e3cb308880' is not marked as serializable.
Is there a simple fix to allow this HasMayToMany to use my PersistentObjectMap extension? I'm thinking I may have to add a convention for this many-to-many relationship, but I don't know where to start with that, since I've just started using NHibernate and Fluent NHibernate only recently.
EDIT: I think I've found a possible solution here: http://marekblotny.blogspot.com/2009/02/fluent-nhbernate-and-collections.html
I'll try the above method of creating an entity and a class map for the linking table and post my findings.
EDIT 2: I created a linking entity as mentioned in the above blog post and downloaded the newest binaries (1.0.0.623).
This helped me discover that the issue was with setting lazy load and trying to add roles to the user object in a completely new session.
I modified the code to move OpenSession to the BeginRequest of an HttpModule as described here. After doing this, I changed my data access code from wrapping the open session in a using statement, which closes the session when it is finished, to getting the current session and wrapping only the transaction in a using statement.
This seems to have resolved the bulk of my issue, but I am now getting an error that says "Could not insert collection" into the USR_ROLE table. And I'm wondering if the above code should work with a UserRoleMap described as:
public UserRoleMap()
{
this.Table("USR_ROLE"); [code]....
Hibernate's documentation for many-to-many relationship suggests creating an object to maintain a one-to-many/many-to-one, as in an ERD. I'm sure this would be much easier with conventional naming standards, but I have to stick with certain abbreviations and odd (and not always properly-implemented) conventions.
View 1 Replies
Similar Messages:
Feb 18, 2010
with fluent nhibernate, is there a way to dynamically switch the table of a mapping at runtime?
public class XYClassMap : ClassMap<XY>
{
public XYClassMap( )
{
Table("XYTable");
Id(d => d.Id).GeneratedBy.Identity();
Map(d => d.Value);
[code]...
View 2 Replies
Feb 16, 2011
I have a table USERS and GROUPS table.
I want to add another table UserGroups.
How can I map these tables.
View 1 Replies
Nov 9, 2010
, I want to use fluent hibernate with asp.net but couldn't find any website or tutorial for that , they're all to configure it with asp.net mvc , anyone knows any?
View 3 Replies
Aug 27, 2010
I have a session criteria statement (Fluent NHibernate) that does not seem to filter the child collection even though I have Expressions/Restrictions defined.
ICriteria criteria = session.CreateCriteria(typeof(MyClass));
criteria.CreateAlias("MyCollection", "MC");
criteria.Add(Restriction.Eq("MC.Property", value));
IList<MyClass> list = criteria.List<MyClass>();
This returns all the objects of type MyClass that have MyCollection.Property = value, however MyCollection is not filtered to MyCollection.Property = value
It seems like only the Root objects get filtered.
View 2 Replies
Sep 9, 2010
I am getting this error even though all my mappings are pretty simple and correct. I get this error only on select classes.
View 1 Replies
Feb 16, 2011
We are developing a multi-language web application with ASP.NET MVC 2 and Fluent NHibernate.Our platform will be multi-language. But just static text will be multi-language. Groups pages depends on community content whatever they use. Like Facebook.We decide to keep all language string in database. And load language when application starts.
View 1 Replies
Mar 8, 2011
I have the following models & mappings (code snippets further below).
One Competition has to have multiple CompetitionAnswers associated with it (multiple choice) from the outset.
At present, using the Fluent NHibernate mappings shown below, when I create a brand new Competition object, populate the properties, then create 3 brand new CompetitionAnswer objects and add them to the CompetitionAnswers property (property on Competition), I would expect to call Save on the session which would INSERT the 1 Competition row and 3 CompetitionAnswer rows to the DB.
However, as soon as I try to call Save on the session, it complains that CompetitionId is null and it can't insert a null into the CompetitionAnswers table for that field - which is right, it shouldn't, however, I assumed that the NHibernate would first create the Competition, then use the newly generated IDENTITY value (CompetitionId) in the CompetitionAnswers table?
[code]....
View 3 Replies
Apr 11, 2010
I've upgraded an ASP.Net Web application to the latest build of Fluent NHibernate (1.0.0.636) and the newest version of NHibernate (v2.1.2.4000). I've checked a couple of times that the application is running in Full trust. But I keep getting the following error:
Security Exception
Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.
Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[SecurityException: Request for the permission of type 'System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0
System.Security.CodeAccessPermission.Demand() +54
System.Reflection.Emit.DynamicMethod.PerformSecurityCheck(Type owner, StackCrawlMark& stackMark, Boolean skipVisibility) +269
System.Reflection.Emit.DynamicMethod..ctor(String name, Type returnType, Type[] parameterTypes, Type owner, Boolean skipVisibility) +81
NHibernate.Bytecode.Lightweight.ReflectionOptimizer.CreateDynamicMethod(Type returnType, Type[] argumentTypes) +165
NHibernate.Bytecode.Lightweight.ReflectionOptimizer.GenerateGetPropertyValuesMethod(IGetter[] getters) +383
NHibernate.Bytecode.Lightweight.ReflectionOptimizer..ctor(Type mappedType, IGetter[] getters, ISetter[] setters) +108
NHibernate.Bytecode.Lightweight.BytecodeProviderImpl.GetReflectionOptimizer(Type mappedClass, IGetter[] getters, ISetter[] setters) +52
NHibernate.Tuple.Component.PocoComponentTuplizer..ctor(Component component) +231
NHibernate.Tuple.Component.ComponentEntityModeToTuplizerMapping..ctor(Component component) +420
NHibernate.Tuple.Component.ComponentMetamodel..ctor(Component component) +402
NHibernate.Mapping.Component.BuildType() +38
NHibernate.Mapping.Component.get_Type() +32
NHibernate.Mapping.SimpleValue.IsValid(IMapping mapping) +39
NHibernate.Mapping.RootClass.Validate(IMapping mapping) +61
NHibernate.Cfg.Configuration.ValidateEntities() +220
NHibernate.Cfg.Configuration.Validate() +16
NHibernate.Cfg.Configuration.BuildSessionFactory() +39
FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() in d:BuildsFluentNHsrcFluentNHibernateCfgFluentConfiguration.cs:93
Anyone had a similar error? I've seach the web / stackoverflow / NHibernate forums but only found people who had a problem when running in medium trust mode, not full trust. I've been developing for several months on this application on this machine with previous versions of Fluent NHibernate and NHibernate.
The machine I'm running this on is 64-bit, you never know that this is relevant.
View 1 Replies
Aug 8, 2010
I am using the above combo in a new web app Im doing just to try to learn to build new stuff to expand my knowledge. Im hoping to go live if I do a good job.. Im kind of new at MVC and the other products so I was trying to find a link to a good tutorial that set all of these up together.
View 1 Replies
Jul 13, 2010
I'm trying to update the data in the parent table that is referenced in the child table from the child's view in Asp.net.
I mapped the tables using Fluent Nhibernate.
In the child table, the mapping looks like this:
[code]....
View 1 Replies
Nov 17, 2010
this is my very very first project with fluent hibernate.i've had small experience in hibernate and nhibernate:
This context is completely new to me since this is a web app project.
So i have my webapp project with most of the fluent nhibernate found on the net.
so i have This entities:
[code]....
View 1 Replies
Jan 29, 2010
am trying to implement fluent nhibernate in MVC project...there were no build errors... but when i run the project i get this exception
System.Xml.Schema.XmlSchemaValidationException: The element 'class' in namespace 'urn:nhibernate-mapping-2.2' has incomplete content. List of possible elements expected: 'meta, subselect, cache, synchronize, comment, tuplizer, id, composite-id' in namespace 'urn:nhibernate-mapping-2.2'.
have no idea what am doing wrong here... the following is the code for opening session factory...
[code]....
View 3 Replies
Jan 25, 2010
How to configure Fluent NHibernate to output queries to Trace or Debug instead of Console?
I'm using MsSqlConfiguration.MsSql2008.ShowSql() but it has no parameters and I can't find anything on Google.
View 3 Replies
Jul 6, 2010
How can I write a unit test for CRUD using in memory database with fluent nhibernate
View 2 Replies
May 11, 2010
I have a table defnition as given below:
License
ClientId
Type
Total
Used[code]....
If a client used a license to create a user, I need to update the Used column in the table. As I set ClientId column as the id column for this table in the mapping xml, I am getting TooManyRowsAffectedException. how to set a composite key at mapping level so that NHibernate can udpate based on ClientId and Type.
Something like: Update License SET Used=Used-1 WHERE ClientId='xxx' AND Type=1
View 3 Replies
Apr 30, 2010
I have a dropdown list on an ASP.NET MVC project that I am pretty sure is not binding to my model because of my nhibernate mapping. I have tried many variations on the asp mvc side resulting in this post here.
MVC side of things seems fine I believe the issue may be that my object is trying to bind, but my mapping is out of whack.
My mapping is:
<many-to-one name="Project" lazy="false"
class="AgileThought.ERP.Domain.Property.Project"
column="ProjectGUID" />
My View gives an error saying that the GUID from the dropdownList selected value is not valid. Which I think may be that it is trying to push the GUID into my related project object.
The value 'fd38c877-706f-431d-b624-1269184eeeb5' is invalid.
My related project list binds to the dropdown list just fine, it is just not binding to my models Project entity.
View 1 Replies
May 10, 2010
I am trying to configure NHibernate on my console application in which I am trying to map an Employee class to a table Employee.I am getting below exception which I have no clue:
Class:
class Employee
{
public int id;
public string name;
[code]...
View 3 Replies
Mar 9, 2010
I have a "database explorer" page that is desgined to be pointed to an unknown database and allow users to browse the data, so it basically uses the SQL system tables to develop its queries and pull in data to tables using auto-generate columns.The problem that I have is that I would like certain types of columns to have certain formats and I'm wondering the best way to go about it. I could format the column in code in the RowDataBound event I assume, but I'm wondering if there some better standard way to do this? Is there a setting of any kind that I can use? For example I want all of the datetime fields to be formated for short date, like {0:d}, I want decimal fields to have 4 decimal places, etc.
View 2 Replies
Nov 19, 2010
I am having a problem mapping a many-to-one relationship from an abstract base class mapping to a concrete union-subclass. Example:
public abstract class Entity
{
public virtual Guid ID {get; set;}
public virtual string Name {get;set;}
public virtual User OwnerUser {get; set;}
}
public class User : Entity
{
public virtual string UserName {get; set;}
}
I have a base abstract class for all of my database objects. I am mapping these classes with the Entity class as the abstract mapping class and the User as a union-subclass. When creating the configuration object, no errors are thrown and the Schema exports just fine. However, the field to the OwnerUser just won't show up in the database for all of the concrete classes. Here is an example of how the mapping looks
<class entity-name="Entity" name="Entity" abstract="true">
<id name="ID" type="guid">
<generator class="guid.comb"/>
</id>
<property name="Name" />
<many-to-one name="OwnerUser" column="ID" entity-name="User" />........
I am also using an Oracle XE instance as the database backend. If this isn't enough information to properly answer the question, let me know and I will add what I can.
View 1 Replies
Aug 31, 2010
error Could not compile the mapping document: WebApplication1.documents.hbm.xml ![alt text][1] photo [URL]
web.config
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" .....
View 1 Replies
Jan 19, 2010
I know that Visual Studio auto-generates a lot of code when you develop a web application. How do I know which code is auto-generated? I do a lot of code editing and tweaking by hand (Im not a WYSIWYG guy), and I want to make sure I'm not editing something thats going to get over-written later by the auto-generator!
View 2 Replies
May 17, 2010
I need to send automatci emails after a set interval of time
View 2 Replies
Nov 22, 2010
HAVING PROBLEM TO GENERATE A AUTO CONTROL NO. WHEN SOMEONE FILL THE FORM AFTER SUBMITTING THE FORM ON NEXT WINDOW ONE WILL GET AUTO CONTROL NO.
View 8 Replies
Feb 17, 2011
I'm trying to call a Soap Web Service, and I need to pass an Address Object to the Server. I can pass an existing address.Id to update an existing address, or if I leave the address.Id empty, it should be saved as a new Address. The Problem is that the Id is of long type, and it allways has a value of 0.And this makes problems for the server, because even if the Id=0, the Server Side function will take the Address as Existing one, and it will start to search on the Database for an Address with Id=0. Of course there is no such address, and it throws an error. When I try to call the Web Service with WebService Studio or SoapUI, and I delete the id manually, then It works as expected, as soon as I put <address id="0"> then it returns me an error - Address with Id=0 not found.So the question is, how to change the webservice definitions, or the proxy classes so that it does not generates this id="0" at all?P.S. I cannot change the Server Side method, it would have been the easiest solution, but unfortunatelly is not possible.
View 1 Replies