小编Kit*_*Kit的帖子

使用LINQ to Entities时返回IQueryable与ObjectQuery

我一直在阅读时使用LINQ来IQueryable处理查询在处理之前的类型,但是当查询处理完毕后,它不再是一个IQueryable,而是一个ObjectQuery.

在这种情况下,从我的层(存储库层)编写方法以返回IQueryable是否正确?

我需要演员吗?

我为什么要退货ObjectQuery

我来自LINQ to SQL背景,IQueryable但事情总是如此,但EF似乎改变了这一点.

任何帮助真的很感激.

linq-to-entities entity-framework iqueryable objectquery entity-framework-4

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

Fileset/patternset的refid属性未展开.你如何编写一个对任意文件集进行操作的目标?

我有一组目标,每个目标基本上都是相同的,除了每个目标包含一个特定的模式集,在其上执行其任务.我想将这些目标折叠成一个"可重用"的目标,而是将一组文件"作为参数".

例如,这个

<target name="echo1">
  <foreach item="File" property="fn">
    <in>
      <items>
        <include name="*.config"/>
      </items>
    </in>
    <do>
      <echo message="${fn}" />
    </do>
  </foreach>
</target>

<target name="echo2">
  <foreach item="File" property="fn">
    <in>
      <items>
        <include name="*.xml"/>
      </items>
    </in>
    <do>
      <echo message="${fn}" />
    </do>
  </foreach>
</target>

<target name="use">
  <call target="echo1"/>
  <call target="echo2"/>
</target>
Run Code Online (Sandbox Code Playgroud)

将被替换为

<patternset id="configs">
   <include name="*.config"/>
</patternset>

<patternset id="xmls">
   <include name="*.xml"/>
</patternset>

<target name="echo">
  <foreach item="File" property="fn">
    <in>
      <items>
        <patternset refid="${sourcefiles}"/>
      </items>
    </in>
    <do>
      <echo message="${fn}" />
    </do>
  </foreach>
</target>

<target name="use">
  <property name="sourcefiles" …
Run Code Online (Sandbox Code Playgroud)

nant properties expansion fileset

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

这是否是类层次结构的"传统"处置模式的合法替代方案?

我不是样板代码的粉丝:复制粘贴重用可能容易出错.即使您使用代码段或智能模板,也无法保证其他开发人员所做的,这意味着无法保证他们做得对.而且,如果你必须看到代码,你必须理解和/或维护它.

我想从社区中了解到:我对类层次结构的IDispose的实现是否是"传统"处置模式的合法替代?通过合法,我的意思是正确,相当好的表现,健壮和可维护.

我很好,这个替代方案是完全错误的,但如果是,我想知道为什么.

此实现假定您可以完全控制类层次结构; 如果你不这样做,你可能不得不回到样板代码.Add*()的调用通常在构造函数中进行.

public abstract class DisposableObject : IDisposable
{
  protected DisposableObject()
  {}

  protected DisposableObject(Action managedDisposer)
  {
     AddDisposers(managedDisposer, null);
  }

  protected DisposableObject(Action managedDisposer, Action unmanagedDisposer)
  {
     AddDisposers(managedDisposer, unmanagedDisposer);
  }

  public bool IsDisposed
  {
     get { return disposeIndex == -1; }
  }

  public void CheckDisposed()
  {
     if (IsDisposed)
        throw new ObjectDisposedException("This instance is disposed.");
  }

  protected void AddDisposers(Action managedDisposer, Action unmanagedDisposer)
  {
     managedDisposers.Add(managedDisposer);
     unmanagedDisposers.Add(unmanagedDisposer);
     disposeIndex++;
  }

  protected void AddManagedDisposer(Action managedDisposer)
  {
     AddDisposers(managedDisposer, null); …
Run Code Online (Sandbox Code Playgroud)

c# dispose idisposable finalizer boilerplate

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

MonoTouch - 有没有人用过这个?

我是一名.NET开发人员,试图实现客观的iPhone编程.我创建了我的第一个应用程序 - 只是一个包含多个xib的简单组合.

我刚刚遇到MonoTouch,它允许您使用C#或.NET开发iPhone应用程序.有人试过这个吗?我有兴趣了解人们的意见.

iphone xamarin.ios

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

针对特定架构验证XDocument

我有一个已加载的XDocument文件.(确认工作).我需要验证这个文档.为此,我有一个XSD文件,我作为嵌入式资源附加到项目.我用这些代码加载xsd:

 Assembly assembly = Assembly.GetExecutingAssembly();
 Stream stream = assembly.GetManifestResourceStream("Project.Models.Ci.def.xsd");
Run Code Online (Sandbox Code Playgroud)

我现在如何根据此XSD验证XML?我只需要知道文件是否有效,所以没什么特别的.

c# xml xsd linq-to-xml

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

什么是更有效的三角形分类方法?

我被要求(学校)编写一个无效的函数并输出用户输入的三角形类型:

static void typeTri()
{
    if (side1 == side2 && side2 == side3)
    {
        Console.WriteLine("The triangle is equilateral.");
    }
    else if ((side1 == side2 && side2 != side3) || (side1 != side2 && side2 == side3) || (side1 == side3 && side1 != side2))
    {
        Console.WriteLine("The triangle is isoceles.");
    }
    else
    {
        Console.WriteLine("The triangle is scalene.");
    }
}
Run Code Online (Sandbox Code Playgroud)

对'else if'的测试似乎有点长.有任何想法吗?

c# if-statement

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

为什么流利的断言失败但断言传递给枚举?

我无法找到断言1失败但断言2通过的原因:

var a = Test.test1;
var b = Test.test1;
a.Should().BeSameAs(b); //1
Assert.Equal(a, b);     //2
Run Code Online (Sandbox Code Playgroud)

Test 是一个像下面的枚举:

enum Test { test1, test2 }
Run Code Online (Sandbox Code Playgroud)

c# assertion fluent-assertions

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

在分配之前,memset()是一个std :: iterator变量是否安全?

这段代码安全吗?

int main() {

    struct {
        int foo;
        int bar;
        std::list<...>::iterator it;
    } foobar;

    memset(&foobar, 0, sizeof(foobar));

    foobar.it = ...;
}
Run Code Online (Sandbox Code Playgroud)

我认为它是安全的,因为std::iterator似乎没有覆盖operator=.这是一个有效的推理吗?

c++ std

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

如何在另一种类型的列表列表中选择所有不同的字符串?

LINQ我还是很新.我有以下"简化"数据结构:

List<List<Field>> myData = new List<List<Field>>();
Run Code Online (Sandbox Code Playgroud)

Field由两个字符串成员组成,TypeName.

我的目标是获得一个List<string>包含Name对应于给定的所有不同的Type.我的第一个方法是:

var test = myData
  .Where(a => a.FindAll(b => b.Type.Equals("testType"))
  .Select(c => c.Name)
  .Distinct());
Run Code Online (Sandbox Code Playgroud)

有人对我有暗示吗?=)

c# linq list

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

C# - 多态混淆重载和方法隐藏

我有一个名为Itemclass的类,它作为一个抽象类,但没有定义为一个.这个类有一个MaxPerStack属性:

public class Item
{
    public short MaxPerStack
    {
        get
        {
            return this.Data.MaxPerStack;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我还有一个名为Equip派生Item类的类,并且还有一个名为property的属性MaxPerStack,声明为new:

public class Equip : Item
{
    public new short MaxPerStack
    {
        get
        {
            return 1;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我调用了以下方法Add,它使用以下MaxPerStack属性item:

public void Add(Item item)
{
    Console.WriteLine("Stack: {0}.", item.MaxPerStack);
}
Run Code Online (Sandbox Code Playgroud)

当我做:

Add(new Equip());
Run Code Online (Sandbox Code Playgroud)

它属于一个人的MaxPerStack财产.ItemEquip

为什么会这样?

c#

-2
推荐指数
1
解决办法
80
查看次数