小编Rei*_*ica的帖子

使用IEnumerable <T>作为委托返回类型

我正在尝试定义一个将返回IEnumerable的委托函数.我有几个问题 - 我想我很接近,但需要一些帮助才能到达那里......

我可以定义我的代表罚款:

 public delegate IEnumerable<T> GetGridDataSource<T>();
Run Code Online (Sandbox Code Playgroud)

现在怎么用呢?

 // I'm sure this causes an error of some sort
 public void someMethod(GetGridDataSource method) { 
      method();
 }  
Run Code Online (Sandbox Code Playgroud)

和这里?

 myObject.someMethod(new MyClass.GetGridDataSource(methodBeingCalled));
Run Code Online (Sandbox Code Playgroud)

谢谢你的提示.

c# asp.net delegates c#-3.0

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

重构LINQ to Entities查询

我已经实现了搜索查询。它用“规范化”字符代替特殊字符。我已将此规则应用于其他领域。实际上,查询看起来非常丑陋,并且充满了DRY违规行为。

但是,对此重新设置似乎并不容易(对我而言)。当然,我只是试图将整个Replace-Stuff重构为一个单独的方法,但这导致了类似的错误

LINQ to Entities无法识别方法'System.String Help(System.String)'方法,并且该方法无法转换为商店表示...

下面的代码显示了查询的一部分,其中包含更多这样的语句。如果有人有一个想法,要使它更好,那就太好了!

qry = qry.Where(guest =>
                (guest.FirstName
                    .Replace("ü", "u").Replace("ue", "u").Replace("û", "u").Replace("ù", "u").Replace("ú", "u")
                    .Replace("ä", "a").Replace("ae", "a").Replace("â", "a").Replace("à", "a").Replace("á", "a")
                    .Replace("ë", "e").Replace("ê", "e").Replace("è", "e").Replace("é", "e")
                    .Replace("ö", "o").Replace("oe", "o").Replace("ô", "o").Replace("ò", "o").Replace("ó", "o")
                    .Replace("ï", "i").Replace("ì", "i").Replace("ì", "i").Replace("í", "i")
                    .Replace("ç", "c")
                    .Replace(".", "").Replace("-", "").Replace("_", "").Replace("´", "").Replace("'", "").Replace("\"", "")
                    .Replace("(", "").Replace(")", "").Replace("[", "").Replace("]", "").Replace("{", "").Replace("}", "")
                    .Replace("$", "").Replace("+", "").Replace("*", "").Replace("@", "")
                    .Replace("|", "").Replace("\\", "").Replace("/", "").Replace("<", "").Replace(">", "")
                    .Replace(".", "").Replace(",", "").Replace(";", "").Replace(":", "")
                    .Replace("=", "").Replace("%", "").Replace("^", "").Replace("?", "").Replace("!", "")
                    .StartsWith(firstName) 
                && …
Run Code Online (Sandbox Code Playgroud)

c# linq entity-framework entity-framework-4

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

具有嵌套多对多关系的 LINQ to Entity Framework 错误

我有以下对象结构(简化了一点......),其中一个用户被赋予一个角色,该角色属于一个或多个组,每个组都有一组权限(带有名称)。由于一个权限可以属于多个组,一个组可以包含多个角色,所以结构如下:

用户 -> 角色 ->> RoleToGroup -> 组 - >> GroupToPrivilege -> 权限(->> = 列表):

我需要找出是否有任何用户拥有名称为“name”的权限。

我尝试使用以下 Linq 语句,我认为它会给我正确的答案:

DbContext.RootObject.Where (x => x.Role.RoleToGroup.Any(y => y.Group.GroupToPrivilege.Any(z=> z.Privilege.Name == "Name")))
Run Code Online (Sandbox Code Playgroud)

这给出了以下sql:

SELECT 
"Extent1"."ROLE_ID" AS "ROLE_ID", 
FROM "USER" "Extent1"
WHERE ( EXISTS (SELECT 
    1 AS "C1"
    FROM ( SELECT 
    "Extent2"."GROUPS_ID" AS "GROUPS_ID"
    FROM "ROLETOGROUP" "Extent2"
    WHERE ("Extent1"."ROLE_ID" = "Extent2"."ROLE_ID")
)  "Project1"
WHERE ( EXISTS (SELECT 
    1 AS "C1"
    FROM  "GROUPTOPRIVILEGE" "Extent3"
    INNER "PRIVILEGE" "Extent4" ON "Extent3"."PRIVILEGES_ID" = "Extent4"."ID"
    WHERE (("Project1"."GROUPS_ID" = "Extent3"."GROUP_ID") AND …
Run Code Online (Sandbox Code Playgroud)

c# linq oracle entity-framework

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

关于从嵌套语句返回的快速问题

如果我有类似循环或一组if/else语句的东西,并且我想从嵌套中返回一个值(见下文),那么最好的方法是将值赋给字段或属性并返回那?

见下文:

bool b;

public bool ifelse(int i)
{
if(i == 5)
{
b = true;
}

else
{
b = false;
}
return b;
}
Run Code Online (Sandbox Code Playgroud)

c# coding-style function-exit nested-statement

1
推荐指数
3
解决办法
231
查看次数

占位符可见总是错误的

我在updatepanel中有一个占位符,它也位于占位符和updatepanel中.但是,根据我的测试,这个布局对此错误无关紧要.我的占位符始终将可见设置为false,即使我尝试将其设置为true.我试图深入思考代码,并且将占位符设置为true的代码正在运行.然而,它并没有将它设置为真.

myPlaceholder.Visible = true;

if(myPlaceholder.Visible)  
//Do stuff inside placeholder

myUpdatePanel.Update();
Run Code Online (Sandbox Code Playgroud)

这仅发生在第一次加载时,在回发时myPlaceholder visible设置为true.它可能是Web应用程序中的其他错误并且会产生此错误,但它如此之大,我不知道从哪里开始查找.我希望有人有类似的问题可以指出我正确的方向.

c# asp.net updatepanel placeholder

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

对表进行反规范化或使用实体框架中的连接

我需要知道使用非规范化表与使用两个单独的表并使用连接访问数据的权衡.我正在使用Entity Framework 4.

在我的情况下,我有两个表OrderOrderCategoryDetails.我在想是否将这两个表合并为一个表更好?

  • 如果非规范化,则添加的列(OrderCategory并且OrderSubcategory将是稀疏的(可能是100%为空.将始终至少50%为空)
  • 另一方面,如果我保持原样,我担心频繁的连接操作被执行(即每当我查询特定的时候Order,我也需要信息OrderCategoryDetails.

目前,我已经规范化了表并使用了导航属性:

这是我的架构:

表:订单

  • ID (首要的关键)
  • 日期
  • ItemCount中
  • OrderCategoryInfo(FK - 加入OrderCategoryDetailson OrderCategoryDetails.ID)

表:OrderCategoryDe​​tails

  • ID (首要的关键)
  • OrderCategory
  • OrderSubCategory

表:OrderItem

  • OrderItem ID (首要的关键)
  • 订单ID(FK - 加入Order)

使用的数据库:SQL Server 2008 R2

c# sql-server database-design entity-framework database-normalization

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

C#中的IQueryable参考问题

码:

public static IQueryable GetAllBy_HesapAdiFirmaAdiCariNo_Turu_bypage_short(string filter, string tip, int page_size, int page_index, string sortcolumn, bool sortdirection)
{
    //bool tip: 0-tümü, 1-son kullanici, 2-bayi, 3- tedarikçi
    VeriyazDBDataContext db = new VeriyazDBDataContext(); db.Connection.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString;
    var cariKayitlari = DAL.DAOCari.SelectAll();
    var kayitlar = (from rows in cariKayitlari
                    where rows.HESAPADI.ToLower().Contains(filter.ToLower()) ||
                        (rows.CARITURU == "Bireysel" ? rows.B_ADSOYAD.ToLower().Contains(filter.ToLower()) : 
                                                        rows.K_FIRMAADI.ToLower().Contains(filter.ToLower())) ||
                        (rows.CARITURU == "Bireysel" ?
                        rows.B_ADSOYAD.ToLower().Contains(filter.ToUpper()) :
                        rows.K_FIRMAADI.ToLower().Contains(filter.ToUpper())) ||                                   
                        rows.ID.ToString().Contains(filter)
                    select rows);

    switch (tip)
    {
        case ("Tümü"):
        default:
        {
            break;
        }
        case ("Son Kullanici"):
        {
            kayitlar …
Run Code Online (Sandbox Code Playgroud)

c# linq reference

0
推荐指数
1
解决办法
5052
查看次数

这个"IF ELSE"声明怎么称呼?

我有时if在我的代码中使用这种方式:

!Value == null ? DoSomething : DoSomethingElse;
Run Code Online (Sandbox Code Playgroud)

我想知道这样一个if else声明的正确名称是什么.

另外,我想知道是否只有if一部分,没有else相同的结构.

c# if-statement

0
推荐指数
1
解决办法
324
查看次数

为什么"非法"声明另一个类中的变量可以成功编译?

我创建了如下所示的ac #test类,我打算测试如果我在范围内外两次创建一个变量会发生什么.但令我惊讶的是,它运行并输出"内部"值.

如果我将此代码片段写入Main()方法,这是多次声明同一个变量的非法方式,编译器错误会相应地发生.但是为什么它可以在一个单独的类中工作?那么我们怎样才能避免犯这样的错误呢?

    class Program
    {
        static void Main(string[] args)
        {                
            Test tst = new Test();
            tst.ScopeAlert();
            Console.ReadLine();
        }
    }

    public class Test
    {
        string scope = "outside";
        public void ScopeAlert()        
        {
            string scope = "inside";

            Console.WriteLine(scope);
        }
    }
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
230
查看次数