小编Dou*_*ter的帖子

DbContext可以强制执行过滤策略吗?

我想将值传递给DbContext的ctor,然后让该值对相关的DbSets强制执行"过滤".这可能......还是有更好的方法?

代码可能如下所示:

class Contact {
  int ContactId { get; set; }
  int CompanyId { get; set; }
  string Name { get; set; }
}

class ContactContext : DbContext {
  public ContactContext(int companyId) {...}
  public DbSet<Contact> Contacts { get; set; }
}

using (var cc = new ContactContext(123)) {
  // Would only return contacts where CompanyId = 123
  var all = (from i in cc.Contacts select i);

  // Would automatically set the CompanyId to 123
  var contact = new Contact { …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-4.1

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

如何从程序中启动Azure存储模拟器

我有一些使用Azure存储的单元测试.在本地运行这些时,我希望它们使用Azure存储模拟器,它是Azure SDK v1.5的一部分.如果模拟器没有运行,我希望它能够启动.

要从命令行启动模拟器,我可以使用:

"C:\Program Files\Windows Azure SDK\v1.5\bin\csrun" /devstore
Run Code Online (Sandbox Code Playgroud)

这很好用.

当我尝试使用这个C#代码启动它时,它会崩溃:

using System.IO;
using System.Diagnostics;
...
ProcessStartInfo processToStart = new ProcessStartInfo() 
{   
    FileName = Path.Combine(SDKDirectory, "csrun"),
    Arguments = "/devstore"
};
Process.Start(processToStart);
Run Code Online (Sandbox Code Playgroud)

我试过摆弄一些ProcessStartInfo设置,但似乎没有任何效果.有人有这个问题吗?

我检查了应用程序事件日志,发现了以下两个条目:

事件ID:1023 .NET运行时版本2.0.50727.5446 - 致命执行引擎错误(000007FEF46B40D2)(80131506)

事件ID:1000 故障应用程序名称:DSService.exe,版本:6.0.6002.18312,时间戳:0x4e5d8cf3故障模块名称:mscorwks.dll,版本:2.0.50727.5446,时间戳:0x4d8cdb54异常代码:0xc0000005故障偏移:0x00000000001de8d4故障处理id:0x%9错误应用程序启动时间:0x%10错误应用程序路径:%11错误模块路径:%12报告ID:%13

c# azure azure-storage

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

C#编译器是否优化了可空类型?

任何人都可以了解为什么这个单元测试在Visual Studio 2013中失败了?

[TestMethod]
public void Inconceivable()
{
    int? x = 0;
    Assert.AreEqual(typeof(int?), x.GetType());
}
Run Code Online (Sandbox Code Playgroud)

c# nullable

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

使用部分RowKey时是否对Azure表存储的查询编入索引?

从我的PartitionKey是用来加载跨多个服务器平衡表中的MS PDC演讲理解,但似乎没有人给出的PartitionKey是用作内的单个服务器索引任何意见.

同样,每个人都会告诉你,指定PartitionKey和RowKey让你出色的性能,但似乎没有人告诉你,如果RowKey被用来改善内PartitionKey性能.

以下是一些示例查询,可帮助我构建问题.假设整个表包含100,000,000行.

  1. PartionKey ="123"和OtherField ="def"
  2. PartitionKey ="123"和RowKey> ="aaa"和RowKey <"aac"

这是我的问题:

  • 如果我在每个分区中只有10行,那么查询1会快吗?
  • 如果我在每个分区中有1,000,000行,那么查询2会快吗?

performance azure azure-table-storage

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

使用TcpClient类连接到smtp.live.com

我正在尝试使用TcpClient类连接到smtp.live.com.这里有一个很好的连接到Gmail的例子:测试SMTP服务器是通过C#运行的

不幸的是,当更新它以使用smtp.live.com时,我在调用AuthenticateAsClient方法时收到"IOException:由于意外的数据包格式导致握手失败".

我该如何解决这个问题?

class Program
{
    static void Main(string[] args)
    {
        using (var client = new TcpClient())
        {
            var server = "smtp.live.com";
            var port = 25;
            client.Connect(server, port);
            using (var stream = client.GetStream())
            using (var sslStream = new SslStream(stream))
            {
                // Getting an IOException here
                sslStream.AuthenticateAsClient(server);
                using (var writer = new StreamWriter(sslStream))
                using (var reader = new StreamReader(sslStream))
                {
                    writer.WriteLine("EHLO " + server);
                    writer.Flush();
                    Console.WriteLine(reader.ReadLine());
                }
            }
        }
        Console.WriteLine("Press Enter to exit...");
        Console.ReadLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试在AuthenticateAsClient中指定SslProtocol.Tls或Ssl3都不起作用.

还尝试提供RemoteCertificateValidation的回调,以便在服务器证书无效的情况下返回true.那也行不通.

注意:请不要建议我使用SmtpClient; 我需要更多的控制权.

.net c# smtp

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