相关疑难解决方法(0)

我可以在EntityFramework中的ObjectSet上使用多少Include以保持性能?

我在我的个人资料页面使用以下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

47
推荐指数
3
解决办法
1万
查看次数

首先了解代码虚拟属性

嗨,我只是学习使用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)

c# entity-framework entity-framework-4.1

27
推荐指数
2
解决办法
2万
查看次数

实体框架,代码优先.调用时不会填充子对象

我首先要掌握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)

c# entity-framework ef-code-first

9
推荐指数
1
解决办法
2万
查看次数

在实体框架中填写外键对象4

我第一次使用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. …

c# entity-framework-4

7
推荐指数
2
解决办法
1万
查看次数

实体框架代码第一外键问题

在我看来,该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"中.

在我看来,像ForeignKeySkill试图以点IdBaseCards,而不是BaseCardId列,我想不通为什么..

如果我尝试删除"正常" Id属性BaseCard,并将其设置BaseCardId为PK(带属性[Key]),则会出现以下错误: …

c# entity-framework foreign-keys data-annotations ef-code-first

5
推荐指数
1
解决办法
1万
查看次数