如何使用Model First方法使用动态连接字符串,但仍然使用EDMX中的数据模型?

我使用EF 5使用Model First方法创建了一个EDMX,即我从一个空白设计师开始并模拟我的实体。 现在,我希望能够使用EDMX中定义的此模型,但提供运行时SQL Server连接字符串,而无需修改配置文件。 我知道如何将连接字符串传递给DbContext但问题是找到程序集中映射的元数据。 例如,我的EDMX在app.config中有这个连接字符串 我缺少的部分是”metadata=res://*/Data.DataContext.EntityFramework.MesSystem.csdl|res://*/Data.DataContext.EntityFramework.MesSystem.ssdl|res://*/Data.DataContext.EntityFramework.MesSystem.msl;” 我希望能够以编程方式创建一个DbContext传入SQL Server连接字符串,但“添加”元数据部分。 这就是我希望T4文件生成的内容…… public partial class MesSystemEntities : DbContext { public MesSystemEntities() : base(“name=MesSystemEntities”) { } public MesSystemEntities(string sqlServerConnectionString) : base(GetEfConnectionString(sqlServerConnectionString)) { } private string GetEfConnectionString(string sqlServerConnectionString) { // values added by T4 generation string format = “metadata=res://*/Data.DataContext.EntityFramework.MesSystem.csdl|res://*/Data.DataContext.EntityFramework.MesSystem.ssdl|res://*/Data.DataContext.EntityFramework.MesSystem.msl;;provider=System.Data.SqlClient;provider connection string=\”{0}\””; return String.Format(format, sqlServerConnectionString); } … } 我的问题是如何在T4生成文件中获取我需要的元数据来创建entity […]

System.Linq.Dynamic – 我可以在WHERE语句中使用IN子句

我有动态linq WHERE声明: dataContext.Table.Where(“id = 0 Or id = 1 Or id = 2 Or …”); 我想改变: dataContext.Table.Where(“id IN (0, 1, 2, …)”); 但它不起作用。 我怎样才能获得更好的性能呢?

Castle Windsor – 我是否必须释放单件或非一次性瞬态物体?

Castle wiki在几个地方说我应该总是调用container.Release()来解决通过容器解决的组件。 对于复杂的生活方式管理技术(例如LifeStyle.Pooled)或使用专门设施时,这显然是有意义的…… 但是,我是否真的需要释放单件(直到容器处理为止)和非一次性瞬态物体? 如果我逐步调用Release()调用瞬态对象或单例,这些调用似乎是多余的 – .eg在瞬态对象未实现IDisposable的情况下,内核只是注意到它没有跟踪对象并返回… 似乎存在“组件负担”的概念来跟踪在解析瞬态对象时可能构造的其他一次性组件的“间接”引用。 我知道如果你不知道100%是否有这种间接依赖关系,就必须释放瞬态对象。 这是“敦促”所有Castle用户始终发布组件的主要原因吗?

如何使TextBox上的Enter作为TAB按钮

我有几个文本框。 我想让Enter按钮充当Tab。 因此,当我将在一个文本框中时,按Enter将使我移动到下一个文本框。 你能告诉我如何实现这种方法而不在textbox类中添加任何代码(如果可能的话,没有覆盖等等)?

如何在开始菜单中将我自己的应用程序置于顶部?

我用C#语言(.net)编写了一个小型桌面应用程序(主窗体)。 我希望将我的应用程序放在开始菜单(Windows 8)的顶部,就像“camtasia studio screenrecoder”一样。 看截图我想要的小应用程序。 我必须在我的应用程序中添加什么代码? 注意:我尝试设置topMost = true ,但这不起作用。

实现“打开包含文件夹”并突出显示文件

这可以是在与文件/文件夹一起使用的程序中具有的便利function。 使用以下方法实际打开包含文件夹很容易: System.Diagnostics.Process.Start( *path to folder* ); …但是如何在该父文件夹中实际选择目标文件? 如果我使用Process.Start方法,它实际上会尝试打开该文件。

使用Json.Net失败的多态JSON反序列化

我正在尝试使用自定义JsonConverter将一些JSON反序列化为各种子类 我几乎遵循了这一点。 我的抽象基类: abstract class MenuItem { public String Title { get; set; } public String Contents { get; set; } public List Submenus { get; set; } public String Source { get; set; } public String SourceType { get; set; } public abstract void DisplayContents(); } 而我派生的JsonConverter : class MenuItemConverter : JsonConverter { public […]

无法隐式转换类型’System.DateTime?’ 到’System.DateTime’。 存在显式转换

我想转换日期时间? todatetime但我收到此错误: 错误7无法隐式转换类型’System.DateTime?’ 到’System.DateTime’。 存在显式转换 这是我的代码: public string ConvertToPersianToShow(DateTime? datetime) { DateTime dt; string date; dt = datetime; string year = Convert.ToString(persian_date.GetYear(dt)); string month = Convert.ToString(persian_date.GetMonth(dt)); string day = Convert.ToString(persian_date.GetDayOfMonth(dt)); if (month.Length == 1) { month = “0” + Convert.ToString(persian_date.GetMonth(dt)); } if (day.Length == 1) { day = “0” + Convert.ToString(persian_date.GetDayOfMonth(dt)); } //date = Convert.ToString(persian_date.GetYear(dt)) […]

(尝试)从WSE 3.0迁移到WCF以获取客户端代码

为此我一直都在网上。 我刚刚做了一段时间的恶魔,我试图消费的网络服务供应商拒绝正式支持WCF作为消费方法。 我不是网络服务专家,所以我会尽力记录和解释这篇文章,但无论如何,如果你需要的话,请求更多的信息,希望我能够提供任何必要的东西。 服务 在我的公司,我们使用公开服务的供应商应用程序。 应用程序是用java编写的,看起来wsdl是用Apache Axis 1.2创建的。 代码 我的遗留代码使用WSE 3.0。 特别是,它使用最后自动添加“WSE”的代理类。 这允许我使用更简单的身份validation方案(我可以使它工作的唯一方法)。 我不需要使用证书。 我使用SecurityPolicyAssertion的衍生物,并将其包装在一个Policy对象中,该对象被传递给客户端类的SetPolicy方法。 以下是创建客户端工作实例所需的全部内容: MyWebServiceWse api = new MyWebServiceWse(); api.Url = myUrl; api.SetPolicy(new Policy(new MyDerivedSecurityAssertion(user, pass))); 我的默认,开箱即用的WCF代码(使用服务引用生成)不接受凭据,所以我知道现在有一个问题。 我在网上阅读了有关在app.config使用不同security或绑定设置的各种内容,但没有任何内容完全奏效。 在大量修补之后我最常见的错误是WSDoAllReceiver: Request does not contain required Security header 。 这是app.config。 也许我们可以先告诉我这里应该改变什么来促进传递证书 – 再次,我在网上看到了不同的意见。 我已经改变了一些属性来模糊我们正在使用的特定服务(公司政策和所有这些)。 这是目前为止的示例C#代码(在控制台应用程序中测试): MyClient client = new MyClient(); client.listMethod(); UPDATE 阅读此SOpost: wcf security。 […]

HttpListener在Mono上工作得很好吗?

我正在寻找一个小型的Web服务来运行在一个小型的Linux机器上。 我更喜欢用C#编写代码,所以我希望使用Mono。 我不想要运行完整的Web服务器或Mono的ASP.NET版本的开销。 我正在考虑使用一个处理每个客户端连接的线程的单个进程。 线程之间的共享内存而不是数据库。 我已经阅读了微软的HttpListener版本以及它如何与Http.sys驱动程序一起工作。 唉,Mono关于这个类的文档只是自动化的类接口,没有讨论它是如何工作的。 (Linux没有Http.sys,所以我想它的实现方式大不相同。) 有人能指出我讨论这个模块的一些资源吗? 非常感谢Bill,billpg.com (对我感兴趣的问题有一点背景。) 前段时间,我问了这个问题 ,有兴趣与很多来回保持长时间的对话。 我已经决定设计我自己的ad-hoc协议,但我采访过的人真的想要一个REST接口,即使代价是“Okay,立即发送命令”信号。 所以,我想知道在Linux / Mono服务器上运行ASP.NET,但偶然发现了HttpListener。 这似乎是理想的,因为每个“对话”可以在一个单独的线程中运行。 在循环中调用HttpListener的线程可以查找每个进程连接的线程,并将引用传递给该线程。 ASP.NET驱动服务的替代方案是让ASPX代码从数据库中获取状态,并在完成时写回新状态。 是的,它会工作,但这是很多开销。