小编Has*_*aan的帖子

Linq从ICollection <T>转换为List <T>

我正在使用Code First Entity Framework.

我使用以下简单类:

public class Users
{
    public ICollection<Projects> Projects{get;set;}
}

public class Projects
{
    public ICollection<Users> Users{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我正在使用linq进行数据检索.执行以下查询时:(注意lstProjectsList<Project>)

var lstUsers = (from users in lstProjects
                where users.ProjectId == pId
                select users.Users).ToList();
Run Code Online (Sandbox Code Playgroud)

我有一个List<Users>对象,并希望用项目填充此列表.喜欢,

var lstUsersToDisplay = new List<Users>();
lstUsersToDisplay = (List<Users>)lstUsers; //This can't be cast.
Run Code Online (Sandbox Code Playgroud)

什么是转换的方式ICollection<T>List<T>

其次,我已经List<Users>并希望将其转换为ICollection<Users>如何实现这一目标?

编辑: 场景,更清楚的是所有Projects都被加载lstProjects,我们需要选择Users映射到特定项目的.这些用户也包含在Projects集合中.如果我分解了lstProjects,那么每个Project都有它的Users collection样子:

lstProjects …

c# linq linq-to-entities entity-framework icollection

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

实体框架中虚拟的目的是什么?

我是Entity Framework的初学者.我有一些条款会产生问题.我正在考虑代码优先架构

  1. 通过在父类中创建子类的属性来解决1对1,在子类中,我们将父类的id标记为外键.

    喜欢

    public class Parent{
       //code 
       public Child Child{get; set;}
    }
    
    public class Child{
       [ForeignKey("Parent")]
       public int ParentId{get; set;}
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 一个1对多的关系,我们使用

    public class Parent {
       //code 
       public IList<Child> Child { get; set; }
    }
    
    public class Child {
       [ForeignKey("Parent")]
       public int ParentId{get; set;}
    }
    
    Run Code Online (Sandbox Code Playgroud)

    这是正确的方法吗?

  3. \*-\*通过IList<class>在两个类中添加来解决.

但我解决问题,我有2班CategoriesProducts.

Product类中,属性定义为

public class Products {
   public virtual Category Category { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Category课堂上,产品以这种方式被调用

public …
Run Code Online (Sandbox Code Playgroud)

c# asp.net entity-relationship entity-framework entity-framework-5

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

C# Json 格式的响应

我知道我需要一个格式化的Newtonsoft Json回复,但我不知道该怎么做,而且我似乎找不到可以帮助我的教程或任何类型的文档。

这是我现在拥有的代码。dtb 是我需要以格式化Newtonsoft Json响应返回的数据库响应

da.Fill(dtb)
return Json(dtb);
Run Code Online (Sandbox Code Playgroud)

这不起作用,当我尝试运行下一批代码时出现错误

Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>((Newtonsoft.Json.Linq.JObject.Parse(response)["d"]).ToString());
UserModel m = (UserModel)JsonConvert.DeserializeObject<UserModel>(response);
if (m.Username == context.UserName && m.PasswordHash == myHash)
{
Run Code Online (Sandbox Code Playgroud)

我不知道为什么它在这个错误的第一行中断

+       $exception  {"Error reading JObject from JsonReader. Current JsonReader item is not an object: StartArray. Path '', line 1, position 1."}   Newtonsoft.Json.JsonReaderException
Run Code Online (Sandbox Code Playgroud)

错误编辑1:

Newtonsoft.Json.JsonSerializationException: 'Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'AuthorizationServer.api.Models.UserModel' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.

To fix this error …
Run Code Online (Sandbox Code Playgroud)

c# json json.net

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

如何限制按钮以对特定控件进行验证?

我有文本框和网格视图。在网格视图中还有正在验证的文本框。在页脚中有一个按钮,如果网格视图当前行通过验证,则创建新行。

问题是,当按下网格视图内的按钮时,它还会验证网格外的内容。这个怎么控制?

我的 aspx 代码如下:

  <h4>Worked Date</h4>
     <asp:TextBox runat="server" ID="txtDateOfWorkForInserting" CssClass="form-control" EnableViewState="false" ClientIDMode="Static" ValidateEmptyText="true"/>
     <asp:RequiredFieldValidator ID="rfvDateOgWork"
     CssClass="text-danger" ControlToValidate="txtDateOfWorkForInserting"
      runat="server" EnableViewState="true" ErrorMessage="*" ToolTip="Select Date" Display="Dynamic" ></asp:RequiredFieldValidator>

      <asp:GridView ID="gvWorkDone" runat="server" ShowFooter="True" AutoGenerateColumns="False"
                    CellPadding="4"  GridLines="None" OnRowDeleting="gvWorkDone_RowDeleting" CssClass="table-responsive table table-striped"
                    Style="text-align: left" >
                    <Columns>
                        <asp:BoundField DataField="RowNumber" HeaderText="SNo" />
                        <asp:TemplateField HeaderText="Work Description">
                            <ItemTemplate>
                                <asp:TextBox ID="txtWorkDone" runat="server" CssClass="form-control multilineTextbox" TextMode="MultiLine" ></asp:TextBox>
                                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtWorkDone"
                                    ErrorMessage="*" SetFocusOnError="True" InitialValue="<% %>"></asp:RequiredFieldValidator>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Time To Complete">
                            <ItemTemplate>
                                 <asp:DropDownList runat="server" ID="ddlTotalTime">
                            <asp:ListItem Selected="True">1</asp:ListItem>
                            <asp:ListItem>2</asp:ListItem>
                            <asp:ListItem>3</asp:ListItem>
                            <asp:ListItem>4</asp:ListItem>
                            <asp:ListItem>5</asp:ListItem>
                            <asp:ListItem>6</asp:ListItem> …
Run Code Online (Sandbox Code Playgroud)

c# asp.net gridview

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