前提:自己动手写linq映射文件。表User, Project 文件:
[Table(Name = "Project")]
public class Project
{
private int id;
private string name;
private string description;
private int pmId;
private EntityRef<User> projectManager;
[Column(IsDbGenerated = true, Name = "id", Storage = "id", IsPrimaryKey = true)]
public int Id
{
get { return id; }
set { id = value; }
}
[Column(Name = "name", Storage = "name")]
public string Name
{
get { return name; }
set { name = value; }
}
[Column(Name = "description", Storage = "description")]
public string Description
{
get { return description; }
set { description = value; }
}
[Column(Name = "pmid", Storage = "pmId", DbType = "Int NOT NULL")]
public int PmId
{
get { return pmId; }
set { pmId = value; }
}
[Association(Name = "FK_PROJECT_USERS", Storage = "projectManager", ThisKey = "pm", OtherKey = "id", IsForeignKey = true)]
public User ProjectManager
{
get { return projectManager.Entity; }
set
{
User previousValue = projectManager.Entity;
if (((previousValue != value)
|| (projectManager.HasLoadedOrAssignedValue == false)))
{
if ((previousValue != null))
{
projectManager.Entity = null;
previousValue.Projects.Remove(this);
}
projectManager.Entity = value;
if ((value != null))
{
value.Projects.Add(this);
}
}
}
}
}
在执行单元测试时出现异常。 异常:Test method LinqTest.Test.IDaoTest.GetUsersTest threw exception: System.InvalidOperationException: Class member Project.pm is unmapped.. 解决:OtherKey, ThisKey 必须设置为类的属性名