KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Whenever I load a Task class, the Document property is always null, despite there being data in the db. Task class: public class Task { public virtual Document Document { get; set; } Task Mapping override for AutoPersistenceModel: public void Override(AutoMap<Task> mapping) { mapping.HasOne(x => x.Document) .WithForeignKey("Task_Id"); As you can see form what NHProf says is being run, the join condition is wrong, the WithForeignKey doesnt seem to take effect. In fact, i can write any string in the above code and it makes no difference. FROM [Task] this_ left outer join [Document] document2_ on this_.Id = document2_.Id It should be: FROM [Task] this_ left outer join [Document] document2_ on this_.Id = document2_.Task_Id If i hack the data in the db so that the ids match, then data is loaded, but obviously this is incorrect - but at least it proves it loads data. Edit: rummaging in the fluent nhib source to find the XML produces this: <one-to-one foreign-key="Task_Id" cascade="all" name="Document" class="MyProject.Document, MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> Edit: heres the schema: CREATE TABLE [dbo].[Document]( [Id] [int] IDENTITY(1,1) NOT NULL, [Task_Id] [int] NOT NULL, CREATE TABLE [dbo].[Task]( [Id] [int] IDENTITY(1,1) NOT NULL, Anyone got any ideas? Thanks Andrew
Tags (comma-separated)
Save Edits
Cancel