小编Jus*_*ner的帖子

实体框架 - 无法将lambda表达式转换为类型'string',因为它不是委托类型

我在基于C#的代码中使用Entity Framework.我遇到了意想不到的怪异,正在寻找建议.

案例1,2,3,4 ......项目:
RivWorks.dll
RivWorks.Service.dll
RivWorks.Alpha.dll

样本(所有这些工作):
RivWorks.Alpha.dll:

public static bool EndNegotitation(long ProductID)
{
    var product = (from a in _dbFeed.AutoWithImage 
                   where a.AutoID == ProductID select a).FirstOrDefault();
...
}
Run Code Online (Sandbox Code Playgroud)

RivWorks.Service.dll

public static RivWorks.Model.NegotiationAutos.AutoWithImage 
    GetProductById(long productId)
{
    var myProduct = from a in _dbFeed.AutoWithImage 
                    where a.AutoID == productId select a;

    return myProduct.FirstOrDefault();
}
public static List<RivWorks.Model.NegotiationAutos.AutoWithImage> 
    GetProductByCompany(Guid companyId)
{
    var myProduct = from a in _dbFeed.AutoWithImage 
                    where a.CompanyID == companyId select a;

    return myProduct.ToList();
}
Run Code Online (Sandbox Code Playgroud)

等等

案例"怪异":
RivWorks.Web.Service.dll(WCF项目)
包含与其他项目相同的引用.

public …
Run Code Online (Sandbox Code Playgroud)

.net c# lambda entity-framework

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

馄饨代码 - 为什么反模式?

我最近遇到了一个术语" 上帝对象 ",被称为"反模式".我听说过不好的编码习惯,但我从来没有听说过它们.

因此,我前往维基百科了解更多信息,我发现有一种称为"馄饨代码"的反模式被描述为"以许多小型(理想情况下)松散耦合的软件组件为特征".

我很困惑 - 为什么这是一件坏事?

anti-patterns

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

部分覆盖子类中的虚拟自动属性

我刚遇到一个理论问题的时候了.

以下代码有效并编译:

public class Parent
{
    public virtual object TestProperty { get; set; }
}

public class Child : Parent
{
    private string _testValue = "Hello World!";

    public override object TestProperty
    {
        get { return _testValue; }
    }
}

public class Consumer
{
    Parent p = new Child();

    public Consumer(){ p.TestProperty = 3; }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

为什么C#允许我部分覆盖TestProperty孩子的auto属性,导致部分不可预测的行为?有实际应用吗?

我被允许使用父设置器设置TestProperty的值(我检查了生成的IL,并且设置器仍在父类中设置支持对象),即使公众无法访问值.

c# theory inheritance

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

无法得到''的内在内容,因为内容不是文字的

我试图迭代包含html表的Repeater的内容,并使用每个单元格的内容.这适用于标准HTML组件,但在我尝试使用控件时会爆炸.下面的代码将打印第一个单元格的值"Item#1",但在尝试访问第二个单元格的.InnerText时会抛出HttpException.错误如下:

Cannot get inner content of  because the contents are not literal.
Run Code Online (Sandbox Code Playgroud)

我试图通过其他地方找到的解决方案来使用RenderControl,但由于两个原因失败了; 1)它渲染了第一个单元格的整个HTML,2)当尝试使用以下消息访问第二个单元格时它仍然爆炸:

'LinkButton1' of type 'LinkButton' must be placed inside 
 a form tag with runat=server
Run Code Online (Sandbox Code Playgroud)

有一种简单的方法来获取我之后的LinkBut​​ton文本吗?转发器代码和C#可以在下面找到.

转发器代码:

<asp:Repeater ID="Rep1" runat="server">
<HeaderTemplate>
    <table id="Table1" class="data">
</HeaderTemplate>
<ItemTemplate>
    <tr id="Row" runat="server">
        <td>Item #1</td>
        <td><asp:LinkButton ID="LinkButton1" OnClick="DoSomething" 
             Text="Item #2" runat="server" /></td>
    </tr>
</ItemTemplate>
<FooterTemplate>
    </table>
</FooterTemplate>
Run Code Online (Sandbox Code Playgroud)

C#:

foreach (RepeaterItem item in Rep1.Items)
{
    HtmlTableRow row = item.Controls[0].FindControl("Row") as HtmlTableRow;

    foreach (HtmlTableCell cell in row.Cells)
    {
        if (cell.InnerText != string.Empty) 
        {
            Console.WriteLine(cell.InnerText); …
Run Code Online (Sandbox Code Playgroud)

asp.net

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

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

禁用WCF JSON服务中的类型提示

我有一个应该是一个相对简单的问题,我似乎无法找到答案.

当WCF执行对象的序列化时,它会自动应用"类型提示".对于Json服务,这会在每个复杂对象上产生一个额外的字段__type.定义为的对象:

[DataContract]
public class SomeObject
{
    [DataMember]
    public string First { get; set; }

    [DataMember]
    public string Last { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

会序列化为:

{
    "First" : "Hello",
    "Last" : "World!",
    "__type" : "SomeObject#MyNamespace.SomeObject"
}
Run Code Online (Sandbox Code Playgroud)

通常这不是问题.不幸的是,当您开始将类嵌套到相当大且复杂的结构中时,这会导致返回客户端的JSON响应大小的大量开销.

当然必须有一种方法来禁用这种行为,但我找不到一个(2007年Rick Strahl也没有回来 ......但是它是2010年,我希望有人已经想到这一点).

.net c# wcf serialization json

14
推荐指数
2
解决办法
6019
查看次数

适用于所有浏览器的Opacity CSS?

有人可以推荐最安全的方法,使用CSS为DIV TAG提供OPACITY VALUE吗?

埃里克

css opacity

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

为什么TreeSet <T>是.NET中的内部类型?

所以,我只是在Reflector周围试图找到HashSet的实现细节(基于这里的另一个问题的答案纯粹的好奇心)并注意到以下内容:

internal class TreeSet<T> : ICollection<T>, IEnumerable<T>, ICollection,
    IEnumerable, ISerializable, IDeserializationCallback
Run Code Online (Sandbox Code Playgroud)

在不深入细节的情况下,它看起来像一个自平衡二进制搜索树.

我的问题是,有没有人知道为什么这堂课internal?仅仅因为其他集合类型在内部使用它并隐藏了BST与普通群众的复杂性......还是我离开了基地?

.net generics collections binary-tree

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

在for循环中分配委托的问题

我有一个能够插件(MEF)的应用程序.插件是导入服务的WPF UserControls.

用户可以从应用程序的主菜单中选择所需的插件.

为此,我使用以下循环:

foreach(IToolPlugin Plugin in ToolPlugins)
{
    Plugin.Init();
    MenuItem PluginMenuItem = Plugin.MenuItem; //New MenuItem but with Header set.
    PluginMenuItem.Click += new RoutedEventHandler(delegate(object o, RoutedEventArgs e) { DoSomething(Plugin.Control);});
    PluginsMenu.Items.add(PluginMenuItem);
}
Run Code Online (Sandbox Code Playgroud)

这对于单个项目非常好.但是,只要我有一个以上的插件,所有菜单项都会执行最后一个循环的委托.或者至少使用最后一个循环的Plugin.Control.

我怎样才能解决这个问题?
谢谢你的帮助.

c# delegates closures event-handling

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

在SQL中使用NOT谓词

我创建了一些查询,无法理解为什么结果不像我预期的那样.

我不明白为什么查询II和III不会返回相同的结果.我希望查询II返回查询I未选择的所有行.

我希望查询II和III能够给出相同的结果.在我看来,III的结果是正确的.

我确定我错过了什么,我只是不知道是什么.

这个例子:

表:

CREATE TABLE [dbo].[TestTable](
 [TestTableId] [int] NOT NULL,
    [ValueA] [int] NULL,
 [ValueB] [int] NULL
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

数据:

TestTableId ValueA ValueB
1        10      5
2        20      5
3        10      NULL
4        20        NULL
5        NULL      10
6        10        10
7        NULL      NULL
Run Code Online (Sandbox Code Playgroud)

查询:

所有记录:从TestTable中选择*

I.选择查询:

select * from TestTable 
where (ValueA = 10 or ValueA = 20) AND ValueB = 5
Run Code Online (Sandbox Code Playgroud)

结果:

TestTableId ValueA ValueB
1           10   5
2           20   5
Run Code Online (Sandbox Code Playgroud)

II.相同的查询,但不是

select * from …
Run Code Online (Sandbox Code Playgroud)

sql t-sql

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