我在我的个人资料页面使用以下LINQ查询:
var userData = from u in db.Users
.Include("UserSkills.Skill")
.Include("UserIdeas.IdeaThings")
.Include("UserInterests.Interest")
.Include("UserMessengers.Messenger")
.Include("UserFriends.User.UserSkills.Skill")
.Include("UserFriends1.User1.UserSkills.Skill")
.Include("UserFriends.User.UserIdeas")
.Include("UserFriends1.User1.UserIdeas")
where u.UserId == userId
select u;
Run Code Online (Sandbox Code Playgroud)
它有一个长对象图并使用许多包含.它现在运行得很好,但是当网站有很多用户时,它会影响性能吗?
我应该用其他方式吗?
linq performance linq-to-entities entity-framework asp.net-mvc-2
嗨,我只是学习使用Entity Framework Code First,我似乎无法理解.我根据教程创建了三个模型:
public class Course
{
public int CourseID { get; set; }
public string Title { get; set; }
public int Credits { get; set; }
public virtual ICollection<Enrollment> Enrollments{ get; set; }
}
public class Enrollment
{
public int EnrollmentID { get; set; }
public int CourseID { get; set; }
public int StudentID { get; set; }
public decimal? Grade { get; set; }
public virtual Course Course { get; set; }
public virtual Student …Run Code Online (Sandbox Code Playgroud) 我首先要掌握EF代码.当我在代码中调用它时,我的域模型设计似乎不支持对象的自动"填充"子项.
模型:
public class Car
{
[Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required,MaxLength(10)]
public string Registration { get; set; }
[MaxLength(30)]
public string Make { get; set; }
[MaxLength(45)]
public string Model { get; set; }
[Required]
public Coordinates Coordinates { get; set; }
[Required]
public Client Client { get; set; }
}
public class Coordinates
{
[Key, ForeignKey("Car")]
public int Id { get; set; }
public double Latitude { get; set; }
public double Longitude { get; …Run Code Online (Sandbox Code Playgroud) 我第一次使用EntityFramework也许这个问题很简单......我已经使用了代码优先方法..我有一个类人员,看起来像这样:
public class Personnel
{
public string Id { set; get; }
public int Code { set; get; }
public string Name { set; get; }
public int Type { set; get; }
public JobTitle Title { set; get; }
}
Run Code Online (Sandbox Code Playgroud)
和JobTitle类:
public class JobTitle
{
public string Id { set; get; }
public int Number { set; get; }
public string Title { set; get; }
public List<Personnel> Personnels { set; get; }
}
Run Code Online (Sandbox Code Playgroud)
其中Personnel Class中的最后一个属性当然是人员表中的外键.我的问题是当我想使用lambda表达式从DB检索所有人员(或人员)时...外键对象为空... lambda表达式如下:
Context.ContextInstance.Personnels.ToList();
Run Code Online (Sandbox Code Playgroud)
如果我将表达式更改为此,则外键对象不再为null. …
在我看来,该ForeignKey属性对我不起作用,但我想我使用它错了;)
使用代码更容易解释:
public class BaseCard
{
public int Id {get ; set; }
public int BaseCardId { get; set; }
public List<Skill> Skills { get; set; }
}
public class Skill
{
public int Id { get; set; }
public int BaseCardId { get; set; }
[ForeignKey("BaseCardId")]
public BaseCard BaseCard { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用种子方法填充这些对象时,我收到此错误:
INSERT语句与FOREIGN KEY约束"FK_dbo.Skills_dbo.BaseCards_BaseCardId"冲突.冲突发生在数据库"数据库",表"dbo.BaseCards",列"Id"中.
在我看来,像ForeignKey在Skill试图以点Id列BaseCards,而不是BaseCardId列,我想不通为什么..
如果我尝试删除"正常" Id属性BaseCard,并将其设置BaseCardId为PK(带属性[Key]),则会出现以下错误: …
c# entity-framework foreign-keys data-annotations ef-code-first