小编Den*_*nko的帖子

急切加载工作正常时,EF6延迟加载不起作用

我将我的应用程序从EF4.1更新为EF6,现在我有延迟加载问题.我使用EF6.x DbContext Generator来生成新的DbContext.所有的这个建议的文章也适用.

  • 我的课程是公开的
  • 没有密封,没有抽象
  • 有一个公共构造函数
  • 不要既不实施IEntityWithChangeTracker也不实施IEntityWithRelationships
  • 双方ProxyCreationEnabledLazyLoadingEnabled设置为true
  • 导航属性是虚拟的

对我来说看起来也很奇怪的是,如果我明确地包含导航属性,Include("...")那么它就会被加载.

我的POCO和DbContext的简化版本:

public partial class Ideation
{
    public Ideation()
    {

    }

    public long Id { get; set; }
    public Nullable<long> ChallengeId { get; set; }

    public virtual Challenge Challenge { get; set; }
}

public partial class Challenge
{
    public Challenge()
    {
        this.Ideations = new HashSet<Ideation>();
    }

    public long Id { get; set; }

    public virtual ICollection<Ideation> Ideations { get; …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-6

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

检测Internet Explorer浏览器版本问题

我在布局中的MVC3应用程序中获得了Getaway:

@if ((Request.Browser.Browser == "IE") && ((Request.Browser.MajorVersion == 7)))
{
//show some content
}
else
{
//show another content 
}
Run Code Online (Sandbox Code Playgroud)

我有很多用户抱怨(用户使用Internet Explorer 8).他们从我的应用程序中看到Internet Explorer 7内容.我检测Internet Explorer 7版本的方式有什么问题?如何在我的应用程序中确保100%用户拥有Internet Explorer 7版本?可能这是特定的操作系统问题?

asp.net asp.net-mvc-3

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

如何使用FlagsAttribute

我项目的开发人员实现了以下枚举

[Flags]
public enum Permissions
{
    Overview = 1,
    Detail = 3,
    Edit = 7,
    Delete = 31,
    Block = 39, // Requires Edit = 7, and It's own location = 32. Therefore 7 + 32 = 39.
    Unblock =  71, // Requires Edit = 7, and It's own location = 64. Therefore 7 + 64 = 71.
    All = int.MaxValue
}
Run Code Online (Sandbox Code Playgroud)

现在,正如你所看到的,他已经做了Details = 3.他这样做的原因是细节(应该是2)也包括概述(2 + 1 = 3).

我一直认为做这些事情的方法是在枚举中使用2的幂,并在枚举之外做任何oring和anding.这里发生了什么?

c# enums

4
推荐指数
2
解决办法
136
查看次数

IEnumerable <KeyValuePair>返回类型问题

我正在研究linq方法,似乎无法获得与方法签名匹配的返回类型.任何指导都将非常感谢.

谢谢!

private static IEnumerable<KeyValuePair<string, string>> RunQuery(XDocument doc)
{
    var data = from b in doc.Descendants("Company")
               where b.Attribute("name").Value == "CompanyA"
               from y in b.Descendants("Shirt")
               from z in y.Descendants("Size")
               select new
               {
                   color = y.Attribute("id").Value,
                   price = z.Value
               };

    return data;
}
Run Code Online (Sandbox Code Playgroud)

c# linq ienumerable types

0
推荐指数
1
解决办法
420
查看次数

如何在linq中使用或运行sql

我正在使用此代码,但收到错误.我想使用一个OR运算符.

DataClasses1DataContext dc = new DataClasses1DataContext();

private void button4_Click(object sender, EventArgs e)
{
   var i = dc.vins
             .Where(aa => aa.startDate < DateTime.Now)
             .Where(aa => aa.Sno > 1)
             .Select(aa => aa);
   dataGridView1.DataSource = i;
}
Run Code Online (Sandbox Code Playgroud)

此代码作为"AND"操作员工作如何使其充当"OR"操作员?

.net c# linq

0
推荐指数
1
解决办法
7332
查看次数

C#:检查文件是否存在 - 进程无法访问文件错误

我正在学习c#,我想检查文件是否存在.如果它存在,它应该加载并写入一个xml文件.如果它不存在,它应该创建它,然后它应该加载并写入xml文件.但如果我点击我的按钮,就会出现错误:

"该进程无法访问该文件,因为它正由另一个进程使用."

在这里你可以看到我的代码:

private void btnSave_Click(object sender, EventArgs e)
{
    XElement xmlnode = new XElement("Namespace",
            new XElement("RandomText1", textBox1.Text),
            new XElement("RandomText2", textBox2.Text),
            new XElement("RandomText3", textBox3.Text)
    );

    XElement xmlFile;
    try
    {
        xmlFile = XElement.Load("testsave.xml");
        xmlFile.Add(xmlnode);
    }
    catch (XmlException)
    {
        xmlFile = new XElement("Test", xmlnode);
    }

    xmlFile.Save("testsave.xml");
    DataSet ds = new DataSet();
    ds.ReadXml("testsave.xml");
    DataTable dt = ds.Tables[0];
    dataGridView1.DataSource = dt;
}

private void Form1_Load(object sender, EventArgs e)
{
    if (!File.Exists("testsave.xml"))
    {
        File.Create("testsave.xml");
    }
}
Run Code Online (Sandbox Code Playgroud)

c# xml file-exists

0
推荐指数
1
解决办法
1472
查看次数