C# 联接表并将名称放入模型MVC、LINQ、C、模型中
这是我的办公室模型C# 联接表并将名称放入模型MVC、LINQ、C、模型中,c#,asp.net-mvc,linq,select,C#,Asp.net Mvc,Linq,Select,这是我的办公室模型 public class Office { public int ID { get; set; } public string Color { get; set; } } 这是我的工人模型 public class Worker { public int ID { get; set; } public int OfficeID { get; set; } public
public class Office
{
public int ID { get; set; }
public string Color { get; set; }
}
这是我的工人模型
public class Worker
{
public int ID { get; set; }
public int OfficeID { get; set; }
public string FullName { get; set; }
[NotMapped]
public string OfficeColor { get; set; }
}
我想要的是让所有使用LINQ with OfficeColor的工作人员使用指定的OfficeID颜色尝试以下操作:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string myColor = "Red";
var results = (from office in Office.offices
join worker in Worker.workers on office.ID equals worker.ID
select new { office = office, worker = worker })
.Where(x => x.office.Color == myColor)
.Select(x => new {
ID = x.worker.ID,
OfficeID = x.worker.OfficeID,
FullName = x.worker.FullName,
OfficeColor = x.office.Color
}).ToList();
}
}
public class Office
{
public static List<Office> offices { get; set; }
public int ID { get; set; }
public string Color { get; set; }
public Office()
{
office = new Office();
}
}
public class Worker
{
public static List<Worker> workers { get; set; }
public int ID { get; set; }
public int OfficeID { get; set; }
public string FullName { get; set; }
//[NotMapped]
public string OfficeColor { get; set; }
public Worker()
{
workers = new List<Worker>();
}
}
}
建立两个EF模型之间关系的正确方法代码优先法:
OfficeID是Office的导航属性吗?如果是,Worker模型是否还包括公共虚拟办公室Office{get;set;}asp.net-mvc标记不相关。linq标签太宽了。林克:什么?物体?SQL?EF?如果EF,哪个版本EF 6,EF Core?如果未映射OfficeColor,则数据库中没有关于此属性的数据。你想达到什么目标?你能写一个例子吗?请展示你自己的第一次努力,因为他们可能会阐明你的努力目标。对不起,我可能没有正确解释。我想得到的是我所有员工的名单,每个员工都应该是这样的。[ID:1,办公室ID:2,全名:约翰,办公室颜色:红色]],[ID:2,办公室ID:3,全名:彼得,办公室颜色:棕色][[ID:3,办公室ID:2,全名:海伦,办公室颜色:红色]]我更新了代码。选择需要修改。sry man,但是你的代码有很多错误。我在没有智能的情况下把它写在这里。就像一个抽象。你应该让代码适合你。
public class Worker
{
public int ID { get; set; }
public int OfficeID { get; set; }
public virtual Office Office { get; set; }
public string FullName { get; set; }
// [NotMapped]
// public string OfficeColor { get; set; }
}
public class Office
{
private ICollection<Worker> workers;
public Office
{
this.workers = new HashSet<Worker>();
}
public int ID { get; set; }
public string Color { get; set; }
public virtual ICollection<Worker> Workers
{
get { return this.workers; }
set { this.workers = value; }
}
}
// and get all workers from Db
public class Program
{
public static void Main()
{
IEnumerable<WorkerViewModel> workers = DbContext.Workers.All().Select(w =>
new WorkerViewModel()
{
Id = w.Id,
OfficeId = w.Office.Id,
FullName = w.FullName,
OfficeColor = w.Office.Color
})
.ToList();
}
}