问题列表 - 第3591页

Asp.Net MVC是适合企业项目的解决方案吗?

我们正准备使用ASP.NET开发企业人力资源项目,我们的团队有兴趣使用MVC而不是WebForms,但我们对此有点担心.

我们不确定这是一个适合企业项目的解决方案.

asp.net asp.net-mvc

13
推荐指数
1
解决办法
2544
查看次数

NHibernate没有持久的多对多关系

我目前正在使用NHibernate作为我的数据访问层,使用Fluent NHibernate为我创建映射文件.我有两个类,TripItem和TripItemAttributeValue,它们之间有多对多的关系.

映射如下:

public class TripItemMap : ClassMap<TripItem2>
{
    public TripItemMap()
    {
        WithTable("TripItemsInt");
        NotLazyLoaded();

        Id(x => x.ID).GeneratedBy.Identity().WithUnsavedValue(0);
        Map(x => x.CreateDate, "CreatedOn").CanNotBeNull();
        Map(x => x.ModifyDate, "LastModified").CanNotBeNull();

        /* snip */

        HasManyToMany<TripItemAttributeValue>(x => x.Attributes).AsBag()
            .WithTableName("TripItems_TripItemAttributeValues_Link")
            .WithParentKeyColumn("TripItemId")
            .WithChildKeyColumn("TripItemAttributeValueId")
            .LazyLoad();
    }
}

public class TripItemAttributeValueMap : ClassMap<TripItemAttributeValue>
{
    public TripItemAttributeValueMap()
    {
        WithTable("TripItemAttributeValues");

        Id(x => x.Id).GeneratedBy.Identity();
        Map(x => x.Name).CanNotBeNull();

        HasManyToMany<TripItem2>(x => x.TripItems).AsBag()
            .WithTableName("TripItems_TripItemAttributeValues_Link")
            .WithParentKeyColumn("TripItemAttributeValueId")
            .WithChildKeyColumn("TripItemId")
            .LazyLoad();
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中的某个时刻,我从数据库中获取现有属性,将它们添加到tripItem.Attributes,然后保存tripItem对象.最后,TripItems_TripItemAttributeValues_Link永远不会获得任何新记录,从而导致关系不被持久化.

如果有帮助,这些是Fluent NHibernate为这些类生成的映射文件:

<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-lazy="true" assembly="ETP.Core" namespace="ETP.Core.Domain">
  <class name="TripItem2" table="TripItemsInt" xmlns="urn:nhibernate-mapping-2.2" lazy="false">
    <id name="ID" …
Run Code Online (Sandbox Code Playgroud)

.net nhibernate fluent-nhibernate

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

在SQL2005中部署WCF客户端程序集

我正在尝试在SQL 2005中部署WCF客户端程序集.这意味着我需要为我的WCF客户端创建/注册依赖项,它们是:

  • System.Runtime.Serialization
  • 的System.Web
  • System.ServiceModel

使用此脚本:

CREATE ASSEMBLY System_Runtime_Serialization FROM 'C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\System.Runtime.Serialization.dll'
WITH PERMISSION_SET = UNSAFE
GO

CREATE ASSEMBLY System_Web FROM 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Web.dll'
WITH PERMISSION_SET = UNSAFE
GO


CREATE ASSEMBLY System_ServiceModel FROM 'C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\System.ServiceModel.dll'
WITH PERMISSION_SET = UNSAFE
GO
Run Code Online (Sandbox Code Playgroud)

System.Web.dll注册失败,并显示以下错误消息:

Assembly 'System.Web' references assembly 'system.web, version=2.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a.', which is not present in the current database. SQL Server attempted to locate and automatically load the referenced assembly from the same location where referring assembly came from, but that operation …
Run Code Online (Sandbox Code Playgroud)

.net wcf stored-procedures sql-server-2005

4
推荐指数
1
解决办法
2583
查看次数

Linq返回列表或单个对象

我有像这样的Linq to Entities查询:

var results = from r in entities.MachineRevision
              where r.Machine.IdMachine == pIdMachine
                 && r.Category == (int)pCategory
              select r;
Run Code Online (Sandbox Code Playgroud)

通常,我使用下面的代码来检查是否返回了一些结果:

if (results.Count() > 0)
{
    return new oMachineRevision(results.First().IdMachineRevision);
}
Run Code Online (Sandbox Code Playgroud)

但是,我在if条件中得到NotSupportedException.

错误消息是:无法创建类型'Closure type'的常量值.在此上下文中仅支持原始类型(例如Int32,String和Guid').

请注意,pCategory是Enum类型.

c# linq enums .net-3.5

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

在Windows窗体应用程序中实现键盘快捷方式的最佳方法?

我正在寻找一种在C#中的Windows窗体应用程序中实现常用Windows键盘快捷键(例如Ctrl+ F,Ctrl+ N)的最佳方法.

该应用程序有一个主窗体,可以容纳许多子窗体(一次一个).当用户点击Ctrl+时F,我想显示自定义搜索表单.搜索表单取决于应用程序中当前打开的子表单.

我想在ChildForm_KeyDown事件中使用这样的东西:

   if (e.KeyCode == Keys.F && Control.ModifierKeys == Keys.Control)
        // Show search form
Run Code Online (Sandbox Code Playgroud)

但这不起作用.按键时,事件甚至不会触发.解决办法是什么?

c# keyboard-shortcuts winforms

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

是否可以使用DBX以编程方式创建数据库?

看起来TSQLConnection只连接到现有数据库,我找不到另一个允许我向数据库服务器发送命令的组件.

我正在使用Delphi 2009和Firebird以及MSSQL.

提出的一个想法是连接到系统数据库(例如MSSQL中的master或tempdb),然后将create命令发送到服务器.这可能是MSSQL的一个选项,但我不确定Firebird.

我也知道Delphi 2009中新的DBX元数据,但我找不到使用它创建数据库的方法.我发现的所有示例都是修改现有数据库.

sql-server delphi firebird dbexpress dbx

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

什么是Microsoft消息队列(MSMQ)?它是如何工作的?

我需要使用MSMQ(Microsoft消息队列).它是什么,它是什么,它是如何工作的?它与Web服务有何不同?

msmq

54
推荐指数
5
解决办法
9万
查看次数

__builtin_offsetof运算符的用途和返回类型是什么?

C++中__builtin_offsetof运算符(或Symbian中的_FOFF运算符)的用途是什么?

它还有什么回报?指针?字节数?

c++ symbian

7
推荐指数
3
解决办法
9355
查看次数

如何异步处理?

假设我有一个实现IDisposable接口的类.像这样的东西:

http://www.flickr.com/photos/garthof/3149605015/

MyClass使用一些非托管资源,因此IDisposableDispose()方法会释放这些资源.MyClass应该像这样使用:

using ( MyClass myClass = new MyClass() ) {
    myClass.DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

现在,我想实现一个异步调用DoSomething()的方法.我向MyClass添加了一个新方法:

http://www.flickr.com/photos/garthof/3149605005/

现在,从客户端来看,MyClass应该像这样使用:

using ( MyClass myClass = new MyClass() ) {
    myClass.AsyncDoSomething();
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我不做任何其他事情,这可能会失败,因为在调用DoSomething()之前可能会释放对象myClass(并抛出意外的ObjectDisposedException).因此,应该延迟对Dispose()方法(隐式或显式)的调用,直到完成对DoSomething()的异步调用.

我认为Dispose()方法中的代码应该以异步方式执行,并且只有在解析了所有异步调用之后才能执行.我想知道哪个可能是实现这一目标的最佳方法.

谢谢.

注意:为简单起见,我没有详细介绍如何实现Dispose()方法.在现实生活中,我通常遵循Dispose模式.


更新:非常感谢您的回复.我感谢您的努力.正如chakrit 评论的那样,我需要多次调用异步DoSomething.理想情况下,这样的事情应该工作正常:

using ( MyClass myClass = new MyClass() ) …
Run Code Online (Sandbox Code Playgroud)

c# dispose asynchronous

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

列出<T>或IList <T>

任何人都可以向我解释为什么我想在C#中使用IList而不是List?

相关问题:为什么暴露它被认为是不好的List<T>

c# generics list

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