有人可以帮我解决一般的实体框架问题吗?我是一个新手,并试图通过阅读和试用来教我自己。错误。但是,我对所有的语法和术语都非常困惑。而且谷歌越多,我就越困惑!
语法中使用的那些小箭头(=>)是什么?我甚至不确定语法的名称是什么......它是实体框架语法吗? Linq方法语法? Linq to Entity语法?
为什么在使用该语法时您似乎可以使用随机字母?下面的“f”似乎可以与任何字母字母互换,因为无论我输入什么字母,Intellisense都会给我选项。那么那封信应该代表什么呢?似乎没有声明。
var query = fruits.SelectMany(f => f.Split(' '));
使用带小箭头的语法或使用我一直看到的“伪相SQL”是否更好,如下所示。这似乎更容易理解,但这不是真正的实体框架方式吗?
var query = from f in fruits from word in f.Split(' ') select word;
并且,对于他们中的任何一个 - 那里有任何文件吗?我一直在互联网上搜索教程,文章,任何东西,但所有回来的都是小样本查询随着小箭头或伪造的SQL而变化,除了“这里是如何做一个选择:”之外没有任何解释。
我非常感谢任何指导或帮助。我想如果我能找到从哪里开始,那么我可以从那里建立自己。谢谢!
答案 0 :(得分:1)
没有真正的实体方式,有LINQ和LINQ扩展方法,我的意见是更清洁的眼睛。您也可以使用LINQ而不仅仅是EE。
LINQ通过添加类似于SQL语句的查询表达式来扩展语言,并且可以用于方便地从数组,可枚举类,XML文档,关系数据库和第三方数据源中提取和处理数据。其他用途,使用查询表达式作为可读组成任意计算的通用框架,包括构造事件处理程序2或monadic解析器。3
1它被称为lambda表达式,它基本上是一个匿名方法。
Exploring Lambda Expression in C#
2你可以使用你想要的任何东西,单词或字母,任何有效参数的名称,因为这是一个参数
3我发现LINQ扩展方法更干净,说实话,我想看的最后一个是SQL代码中的语句。
4这里可以找到一个好的开始
答案 1 :(得分:0)
箭头称为Lambda运算符,它用于创建Lambda表达式。这与EF,Linq或其他任何事情无关。这是C#的一个特色。 EF和Linq只是使用了这个功能,因为它对编写查询非常有用。
Marco已提供相关文档的链接。
Linq是一个扩展方法库,主要在IEnumerable和IQueryable接口等类型上运行,并为您提供了处理各种类型集合的强大功能。您可以使用两种格式编写Linq查询,因此称为方法语法和查询语法。它们在功能上是相同的,但它们的使用通常取决于您使用的个人偏好(尽管我们中的许多人都使用它们,具体取决于它所使用的上下文...其中一个或更容易使用)。