我一直在阅读时使用LINQ来IQueryable处理查询在处理之前的类型,但是当查询处理完毕后,它不再是一个IQueryable,而是一个ObjectQuery.
在这种情况下,从我的层(存储库层)编写方法以返回IQueryable是否正确?
我需要演员吗?
我为什么要退货ObjectQuery?
我来自LINQ to SQL背景,IQueryable但事情总是如此,但EF似乎改变了这一点.
任何帮助真的很感激.
linq-to-entities entity-framework iqueryable objectquery entity-framework-4
我有一组目标,每个目标基本上都是相同的,除了每个目标包含一个特定的模式集,在其上执行其任务.我想将这些目标折叠成一个"可重用"的目标,而是将一组文件"作为参数".
例如,这个
<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) 我不是样板代码的粉丝:复制粘贴重用可能容易出错.即使您使用代码段或智能模板,也无法保证其他开发人员所做的,这意味着无法保证他们做得对.而且,如果你必须看到代码,你必须理解和/或维护它.
我想从社区中了解到:我对类层次结构的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) 我是一名.NET开发人员,试图实现客观的iPhone编程.我创建了我的第一个应用程序 - 只是一个包含多个xib的简单组合.
我刚刚遇到MonoTouch,它允许您使用C#或.NET开发iPhone应用程序.有人试过这个吗?我有兴趣了解人们的意见.
我有一个已加载的XDocument文件.(确认工作).我需要验证这个文档.为此,我有一个XSD文件,我作为嵌入式资源附加到项目.我用这些代码加载xsd:
Assembly assembly = Assembly.GetExecutingAssembly();
Stream stream = assembly.GetManifestResourceStream("Project.Models.Ci.def.xsd");
Run Code Online (Sandbox Code Playgroud)
我现在如何根据此XSD验证XML?我只需要知道文件是否有效,所以没什么特别的.
我被要求(学校)编写一个无效的函数并输出用户输入的三角形类型:
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'的测试似乎有点长.有任何想法吗?
我无法找到断言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) 这段代码安全吗?
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=.这是一个有效的推理吗?
LINQ我还是很新.我有以下"简化"数据结构:
List<List<Field>> myData = new List<List<Field>>();
Run Code Online (Sandbox Code Playgroud)
Field由两个字符串成员组成,Type和Name.
我的目标是获得一个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)
有人对我有暗示吗?=)
我有一个名为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# ×6
assertion ×1
boilerplate ×1
c++ ×1
dispose ×1
expansion ×1
fileset ×1
finalizer ×1
idisposable ×1
if-statement ×1
iphone ×1
iqueryable ×1
linq ×1
linq-to-xml ×1
list ×1
nant ×1
objectquery ×1
properties ×1
std ×1
xamarin.ios ×1
xml ×1
xsd ×1