小编Ale*_*lex的帖子

实体框架继承:TPT,TPH还是没有?

我目前正在阅读有关在Entity Framework中使用继承的可能性.有时我使用approch键入数据记录,我不确定是否会使用TPT或TPH或者没有...

例如......我有一个电子商务商店,它增加了运费,账单和送货地址

我有一个地址表:

RecordID
AddressTypeID
Street
ZipCode
City
Country
Run Code Online (Sandbox Code Playgroud)

和一张桌子 AddressType

RecordID
AddressTypeDescription
Run Code Online (Sandbox Code Playgroud)

当人们展示TPT或TPH时,桌子设计与通用设计不同......当有这样的方法时,考虑继承是否有意义..

我希望它有意义......

谢谢你的帮助...

inheritance entity-framework

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

如何使用AAA语法执行AssertWasCalled但忽略参数

我正在使用新的AAA语法,并想知道下面的语法,并让模拟忽略参数:

mockAccount.AssertWasCalled(account => account.SetPassword("dsfdslkj"));
Run Code Online (Sandbox Code Playgroud)

我认为以下是我如何用记录/重放模型做到这一点,但我想看看是否可以使用3.6使用AAA完成:

mockAccount.Expect(account => account.SetPassword("sdfdsf")).IgnoreArguments();
mockAccount.VerifyAllExpectations();
Run Code Online (Sandbox Code Playgroud)

rhino-mocks arrange-act-assert

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

将datetime变量的时间部分设置为18:00

我需要将datetime变量设置为两天,但是时间部分必须是18:00.

例如,如果我getdate()现在打电话,我会得到2010-05-17 13:18:07.260.我需要设置它2010-05-19 18:00:00.000.

有没有人有一个很好的片段或任何想法如何正确吗?

sql sql-server datetime

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

代码中的超链接OnClick事件

如何OnClick为超链接控件创建一个事件?

我们可以用Attributes.Add("OnClick","eventname")吗?

c# asp.net

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

HTML Agility Pack Null参考

我在使用HTML Agility Pack时遇到了一些麻烦.

当我在不包含特定节点的HTML上使用此方法时,我得到一个空引用异常.它起初工作,但后来停止工作.这只是一个片段,还有大约10个foreach循环选择不同的节点.

我究竟做错了什么?

public string Export(string html)
{
    var doc = new HtmlDocument();
    doc.LoadHtml(html);
    // exception gets thrown on below line
    foreach (var repeater in doc.DocumentNode.SelectNodes("//table[@class='mceRepeater']"))
    {
        if (repeater != null)
        {
            repeater.Name = "editor:repeater";
            repeater.Attributes.RemoveAll();
        }
    }

    var sw = new StringWriter();
    doc.Save(sw);
    sw.Flush();

    return sw.ToString();
}
Run Code Online (Sandbox Code Playgroud)

c# html-agility-pack

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

C#正则表达式,单引号之间的字符串

string val = "name='40474740-1e40-47ce-aeba-ebd1eb1630c0'";
Run Code Online (Sandbox Code Playgroud)

我想'使用正则表达式获取引号之间的文本.

有人可以吗?

c# regex

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

ASP.NET XML分析错误:找不到元素行号1,列1错误

嘿,我发现了一个奇怪的气质页面随机给我以下错误

XML Parsing Error: no element found
Location: http://kj2011/site_2011/nonprofit-database/overview.aspx
Line Number 1, Column 1:

这个页面好像2周,但截至昨天我随机得到上述错误.我要删除页面并重新创建错误消失但几小时后会再次出现.我有一些其他模板

http://kj2011/site_2011/nonprofit-database/financial.aspx

它具有相同的主文件和用户控件,但从未得到错误只是overview.aspx页面.

有任何想法吗 ?

xml asp.net

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

在ITargetBlock <TInput>中重试策略

我需要在工作流程中引入重试策略.假设有3个块以这种方式连接:

var executionOptions = new ExecutionDataflowBlockOptions { MaxDegreeOfParallelism = 3 };
var buffer = new BufferBlock<int>();
var processing = new TransformBlock<int, int>(..., executionOptions);
var send = new ActionBlock<int>(...);

buffer.LinkTo(processing);
processing.LinkTo(send);
Run Code Online (Sandbox Code Playgroud)

因此,有一个缓冲区累积数据,然后将其发送到转换块,该转换块一次处理不超过3个项目,然后将结果发送到操作块.

在处理过程中可能会出现变换块瞬态错误,如果错误是瞬态错误,我想重试该块.

我知道块通常不可重试(传递到块中的委托可以重试).其中一个选项是包装传递给支持重试的委托.

我也知道有一个非常好的库TransientFaultHandling.Core可以为瞬态故障提供重试机制.这是一个很棒的图书馆,但不是我的情况.如果我将传递给转换块的委托包装到RetryPolicy.ExecuteAsync方法中,则转换块内的消息将被锁定,并且在重试完成或失败之前,转换块将无法接收新消息.想象一下,如果所有3条消息都输入到重试中(假设下次重试尝试将在2分钟内完成)并且失败,则变换块将被卡住,直到至少有一条消息离开变换块.

我看到的唯一的解决办法是延长TranformBlock(实际上,ITargetBlock将有足够太),和做手工重试(比如从这里):

do
 {
    try { return await transform(input); }
    catch
    { 
        if( numRetries <= 0 ) throw;
        else Task.Delay(timeout).ContinueWith(t => processing.Post(message));
    }
 } while( numRetries-- > 0 );
Run Code Online (Sandbox Code Playgroud)

ig将消息再次放入变换块中,但是在这种情况下,重试上下文(剩余的重试次数等)也应该传递给该块.听起来太复杂了......

有没有人看到更简单的方法来实现工作流程块的重试策略?

c# task-parallel-library tpl-dataflow

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

ORA-01008绑定了所有变量

我正在使用System.Data.OracleClient它按名称进行参数绑定,并验证CommandText和Parameters是否同步:

    public string CommandText { get; set; }
    public IEnumerable<OracleParameter> Parameters { get; set; }

    private void VerifyThatAllParametersAreBound()
    {
        var variableNames = Regex.Matches(CommandText, ":\\w+")
            .Cast<Match>().Select(m => m.Value).ToArray();
        var parameteterNames = Parameters.Select(p => p.ParameterName).ToArray();

        var unboundVariables = variableNames.Except(parameteterNames).ToArray();
        if (unboundVariables.Length > 0)
        {
            throw new Exception("Variable in CommandText missing parameter: "
                + string.Join(", ", unboundVariables) + ".");
        }

        var unboundParameters = parameteterNames.Except(variableNames).ToArray();
        if (unboundParameters.Length > 0)
        {
            throw new Exception("Parameter that is not used in CommandText: "
                + string.Join(", …
Run Code Online (Sandbox Code Playgroud)

c# oracle oracleclient ora-01008

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

C#用xpath解析html

我正在尝试从HTML文档中解析一个简单的C#中的股票交易所信息.问题是我无法理解语法,tr class ="LomakeTaustaVari"被解析出来但是如何获得没有tr-class的第二位?

这是HTML的一部分,它自我重复不同的值.

<tr class="LomakeTaustaVari">
    <td><div class="Ensimmainen">12:09</div></td>
    <td><div>MSI</div></td>
    <td><div>POH</div></td>
    <td><div>42</div></td>
    <td><div>64,50</div></td>
</tr>
<tr>
    <td><div class="Ensimmainen">12:09</div></td>
    <td><div>SRE</div></td>
    <td><div>POH</div></td>
    <td><div>156</div></td>
    <td><div>64,50</div></td>
</tr>
Run Code Online (Sandbox Code Playgroud)

我的C#代码:

{
    HtmlAgilityPack.HtmlWeb web = new HtmlWeb();
    HtmlAgilityPack.HtmlDocument doc = web.Load ("https://www.op.fi/op/henkiloasiakkaat/saastot-ja-sijoitukset/kurssit-ja-markkinat/markkinat?sivu=alltrades.html&sym=KNEBV.HSE&from=10:00&to=19:00&id=32453");

    foreach (HtmlNode row in doc.DocumentNode.SelectNodes("//tr[@class='LomakeTaustaVari']")) 
    {
        Console.WriteLine(row.InnerText);     
    }
    Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)

c# xpath html-agility-pack

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