小编Ant*_*ram的帖子

实体框架中的ICollection <T> Vs List <T>

在我首先设计一些Entity Framework应用程序之前,我只看了几个网络广播.我真的没有阅读那么多文档,我觉得我现在正在为此而痛苦.

我一直List<T>在我的课堂上使用,而且效果很好.

现在我已经阅读了一些文档,并说它应该一直在使用ICollection<T>.我改为这个,它甚至没有导致模型上下文改变.这是因为兼并List<T>ICollection<T>继承IEnumerable<T>,这是EF实际需要的吗?

但是,如果是这种情况,为什么EF文档没有声明它需要IEnumerable<T>而不是ICollection<T>

在任何情况下,我做了什么都有任何缺点,或者我应该改变它?

c# ienumerable list icollection ef-code-first

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

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

如何将DataTable列转换为List

我有一个包含多列的DataTable.我想List<String>从DataTable的第一列中获取一个.我怎样才能做到这一点?

.net c# datatable list

60
推荐指数
5
解决办法
11万
查看次数

if语句后面的变量声明

另一个论坛上出现了一个问题,我知道如何修复它,但它揭示了我特有的编译器功能.该人收到错误"嵌入式语句不能是声明或标记语句",因为他们在没有括号的if语句后声明了变量.这不是他们的意图,但是他们在if语句之后立即注释掉了代码行,这使得变量声明成为执行的事实上的代码行.无论如何,这就是背景,这让我想到了这一点.

以下代码是非法的

if (true)
    int i = 7;
Run Code Online (Sandbox Code Playgroud)

但是,如果你用括号括起来,那一切都是合法的.

if (true)
{
    int i = 7;
}
Run Code Online (Sandbox Code Playgroud)

这两段代码都没用.然而第二个是好的.这种行为的具体解释是什么?

c# if-statement

59
推荐指数
3
解决办法
4万
查看次数

如何定义实现接口并约束类型参数的泛型类?

class Sample<T> : IDisposable // case A
{
    public void Dispose()
    {
        throw new NotImplementedException();
    }
}

class SampleB<T> where T : IDisposable // case B
{
}

class SampleC<T> : IDisposable, T : IDisposable // case C
{
    public void Dispose()
    {
        throw new NotImplementedException();
    }
}
Run Code Online (Sandbox Code Playgroud)

案例C是案例A和案例B的组合.这可能吗?如何使案例C正确?

c# generics inheritance constraints

51
推荐指数
3
解决办法
4万
查看次数

如何描述返回值(非空)的Action <T>委托?

Action<T>委托返回void.是否有任何其他内置委托返回非空值?

.net c# delegates

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

无法将对象从DBNull强制转换为其他类型

无法将对象从DBNull强制转换为其他类型.

我有一个以下函数抛出上述错误.我正在处理存储过程和C#代码中的所有空值.

那么它在哪里得到这个错误?

我可以在catch块中看到错误.但我不明白以下create()中哪一行得到错误.

public Boolean Create(DataTO DataTO)
{
    IDbTrans transaction = null;
    IDbCmd IDbCmd;

    string EncryptedPassword = Encrypt(DataTO.txtPwd);
    Base dataAccCom = null;

    try
    {
        dataAccCom = Factory.Create();
        dataAccCom.OpenConnection();
        transaction = dataAccCom.BeginTransaction();
        IDbCmd = dataAccCom.CreateCommand("sp_Register", true);
        dataAccCom.AddParameter(IDbCmd, "op_Id", DbType.Int64, 0, ParameterDirection.Output);
        dataAccCom.AddParameter(IDbCmd, "p_dlstTitle", DbType.String, ReplaceNull(DataTO.dlstTitle));
        dataAccCom.AddParameter(IDbCmd, "p_txtFirstName", DbType.String, ReplaceNull(DataTO.txtFirstName));
        dataAccCom.AddParameter(IDbCmd, "p_txtMiddleName", DbType.String, ReplaceNull(DataTO.txtMiddleName));
        dataAccCom.AddParameter(IDbCmd, "p_txtLastName", DbType.String, ReplaceNull(DataTO.txtLastName));
        dataAccCom.AddParameter(IDbCmd, "p_txtDob", DbType.DateTime, DataTO.txtDob);
        dataAccCom.AddParameter(IDbCmd, "p_txtDesig", DbType.String, ReplaceNull(DataTO.txtDesig));
        dataAccCom.AddParameter(IDbCmd, "p_txtOFlatNo", DbType.String, ReplaceNull(DataTO.txtOFlatNo));
        dataAccCom.AddParameter(IDbCmd, "p_txtOBuild", DbType.String, ReplaceNull(DataTO.txtOBuild));
        dataAccCom.AddParameter(IDbCmd, "p_txtOPost", DbType.String, ReplaceNull(DataTO.txtOPost));
        dataAccCom.AddParameter(IDbCmd, "p_txtOArea", DbType.String, …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net parameters

39
推荐指数
4
解决办法
16万
查看次数

如何将类列表传递给接口列表?

我有这样的功能:

DoSomething(List<IMyInterface>)
Run Code Online (Sandbox Code Playgroud)

IMyInterface是一个接口,MyClass是一个实现此接口的类MyClass:IMyInterface

我打电话DoSomething(List<MyClass>),它看起来不起作用.我怎样才能将类的列表作为函数的参数传递给类的接口列表?谢谢!

c# interface class list

24
推荐指数
2
解决办法
7519
查看次数

如何在字典中统一两个数组?

如果你有两个阵列string[] a,int[] b你如何能够Dictionary<string,int>最有效地获得最佳代码?假设它们包含相同数量的元素.

例如,这是最好的方法吗?

Dictionary<string,int> vals = new Dictionary<string,int>();
for(int i = 0; i < size; i++)
{
    vals.Add(a[i],b[i]);
}
Run Code Online (Sandbox Code Playgroud)

c#

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

如何将Func <T>隐式转换为Expression <Func <T >>?

我不明白这里发生了什么:

这两行都编译:

 Func<object> func = () => new object();

 Expression<Func<object>> expression = ()=>new object();
Run Code Online (Sandbox Code Playgroud)

但这不是:

 expression = func;
Run Code Online (Sandbox Code Playgroud)

没有隐式运算符LambdaExpressionExpression<TDelegate>将委托转换为表达式,因此必须发生其他事情才能使赋值工作.它是什么?

c# linq lambda expression linq-expressions

17
推荐指数
1
解决办法
1028
查看次数