0

我得到了以下示例:

   public TestAccountConfiguration()
    {

        HasRequired(a => a.Application)
            .WithMany(t => t.TestAccounts)
            .HasForeignKey(d => d.ApplicationId)
            .WillCascadeOnDelete(false);
    }

所有字母 a, t, d 是否有意义?当我查看示例时,似乎人们有时会选择任何角色。

4

3 回答 3

1

它们是lamdba 表达式。它们是局部变量,可以是你想要的任何东西。

HasRequired(app => app.Application)
            .WithMany(test => test.TestAccounts)
            .HasForeignKey(testAccount => testAccount.ApplicationId)
            .WillCascadeOnDelete(false);

就个人而言,我尝试将它们命名为相关的名称,但这完全取决于您。

于 2013-03-07T16:49:48.840 回答
0

这些字母是匿名函数的参数名称。他们的名字无关紧要,你可以使用任何你喜欢的名字,除了它不能与另一个同名的变量冲突。特别是,事件处理程序通常有一个e已命名的参数,这意味着该事件处理程序内的 lambda 表达式不能e再次用作参数名称。除此之外,使用任何你喜欢的东西。

就像

int addOne1(int x)
{
   return x + 1;
}

int addOne2(int y)
{
   return y + 1;
}

Func<int, int> addOne3 = z => z + 1;

这些函数都做同样的事情,它们之间(实际上)在函数之外没有区别。

于 2013-03-07T16:51:41.613 回答
0

来自MSDN

要创建 lambda 表达式,请在 lambda 运算符 => 的左侧指定输入参数(如果有),并将表达式或语句块放在另一侧。例如,lambda 表达式 x => x * x 指定一个名为 x 的参数并返回 x 的平方值。您可以将此表达式分配给委托类型,如以下示例所示:

换句话说,函数的参数列表在左边,函数本身在=>符号的右边。

于 2013-03-07T16:50:20.430 回答