1
に参加把握することはできません、私はこの作業を持っており、基本的なSQLクエリは、私が欲しいものです:は、LINQのはLinqPadで
from userProcesses in UserProcesses
join formProcesses in FormProcesses
on userProcesses.ProcessID equals formProcesses.Process_ProcessID
join forms in Forms
on formProcesses.Form_FormID equals forms.FormID
join userForms in UserForms
on new {userProcesses.UserProcessID, forms.FormID} equals
new {userForms.UserProcessID, userForms.FormID} into combined
from c in combined.DefaultIfEmpty()
select new
{
UserFormID = c == null ? (int?) null : c.UserFormID,
FormID = forms.FormID,
Name = forms.Name
}
問題は、私の実際のコードでは、ある、FormProcesses
テーブルではありませんそれ自体は公開されていますが、ナビゲーションプロパティです。私は私のソフトウェアでこのクエリを書く方法に苦労してきました。あなたは、ナビゲーションプロパティを見ることができるので、ここで
は私のモデルのスケルトン図である:私は間違っ
public class UserProcess : BaseModel
{
[Key]
public int UserProcessID { get; set; }
[Required]
[ForeignKey("Process")]
public int ProcessID { get; set; }
public Process Process { get; set; }
public virtual ICollection<UserForm> UserForms { get; set; }
}
public class Form : Common.BaseModel
{
[Key]
public int FormID { get; set; }
public virtual ICollection<Process> Processes { get; set; }
}
public class UserForm : Common.BaseModel
{
[Key]
public int UserFormID { get; set; }
[Required]
[ForeignKey("UserProcess")]
public int UserProcessID { get; set; }
public UserProcess UserProcess { get; set; }
[Required]
[ForeignKey("Form")]
public int FormID { get; set; }
public Form Form { get; set; }
}
public class Process : Common.BaseModel
{
[Key]
public int ProcessID { get; set; }
public virtual ICollection<Form> Forms { get; set; }
}
何をやっている - どのように私はこの作業を得ることができますか?