标签: entity-framework-4

如何在EF Codefirst中创建一个可以为空的属性?

我的"Bookshelf"测试应用程序中有两个POCO:

/// <summary>
/// Represents a book
/// </summary>
public class Book
{
    public int ID { get; set; }
    public string Title { get; set; }
    public string Author { get; set; }
    public string ISBN { get; set; }
    public virtual Loaner LoanedTo { get; set; }
}

/// <summary>
/// Represents a Loaner
/// </summary>
public class Loaner
{
    public int ID { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Book> Loans …
Run Code Online (Sandbox Code Playgroud)

entity-framework-4 ef-code-first

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

LINQ查询 - 如何对急切提取进行排序和过滤

如何对父子关系进行急切查询:

  1. 过滤子字段
  2. 对父母和孩子进行排序
  3. 返回列表或父母与预先填充的孩子

如果我试试

from p in _context.Parents.Include("children")
join c in _context.childrenon p.Id equals c.ParentId 
where d.DeletedDate == null
orderby p.Name ascending, c.Name 
select p
Run Code Online (Sandbox Code Playgroud)

然后我得到了Parent对象,但是每个Parent对于孩子都有NULL

如果我试试

from p in _context.Parents.Include("children")
orderby p.Name ascending
select p
Run Code Online (Sandbox Code Playgroud)

查询将返回所有父项和子项,但不会对其进行过滤或排序.

我想要的结果是IEnumerable<Parent> ie

Parent[0].name = "foo"
Parent[0].children = IEnumerable<Child>
Parent[1].name = "bar"
Parent[1].children = IEnumerable<Child>
Run Code Online (Sandbox Code Playgroud)

linq linq-to-entities entity-framework-4

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

Lambda表达问题

我是lambda表达式和linq的新手,无法弄清楚我在做错了什么:

GroupSet groupToChange = context.GroupSet.Select(q => q.groupId == groupId);
Run Code Online (Sandbox Code Playgroud)

我正在尝试获取并更改实体的名称.

groupToChange.groupName = newGroupName;
Run Code Online (Sandbox Code Playgroud)

我对第二行没有任何问题.有任何想法吗?它告诉我,我无法将bool转换为GroupSet,但该函数返回它找到的内容,对吧?

c# linq lambda entity-framework-4

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

错误:Container上不存在页面标记中指定的EntitySet"Building"

我在GridView中设置了这样的ItemTeplate:

<asp:TemplateField HeaderText="Building">
    <ItemTemplate>
        <asp:Label 
            ID="lblBuilding" 
            Text='<%# Bind("Building1.building_name") %>' 
            runat="server" />
    </ItemTemplate>
    <EditItemTemplate>
        <asp:EntityDataSource 
            ID="EditHousingDataSource" 
            runat="server" 
            EnableDelete="true" 
            ConnectionString="name=pbu_housingEntities"
            DefaultContainerName="pbu_housingEntities" 
            EnableFlattening="false" 
            EntitySetName="Building" 
            EntityTypeFilter="Building" />
        <asp:DropDownList 
            ID="ddlBuilding" 
            runat="server" 
            DataSourceID="EditHousingDataSource"
            DataTextField="building_name" 
            DataValueField="ID" />
    </EditItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Container中不存在在页面标记中指定的EntitySet"Building".

有什么想法吗?pbu_housingEntities中肯定有一个Building实体?

vb.net asp.net entity-framework entity-framework-4

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

将POCO实体转换为业务实体

我愿意将实体框架集成为我的数据层.

我使用本教程跟踪文章并生成了poco实体:http://blogs.msdn.com/b/adonet/archive/2010/01/25/walkthrough-poco-template-for-the-entity-framework.aspx

我有自己的业务对象.这是我的业务对象Brach:

public class Branch
{
    public long BranchId { get; private set; }
    public string BranchName { get; set; }
    public string BranchCode { get; set; }

    public Branch() { }

    public void InsertBranch(Guid companyId)
    {
        using (var ctx = new Entities.Entities())
        {
            var branch = new T_STF_BRANCH() //This is generated POCO object
            {
                company_id = companyId,
                branch_name = BranchName,
                branch_code = BranchCode
            };
            ctx.T_STF_BRANCH.AddObject(branch);
            ctx.SaveChanges();
        }
    }

    public static IList<Branch> GetBranchesList(Guid companyId, long? branchId, …
Run Code Online (Sandbox Code Playgroud)

.net entity-framework business-objects poco entity-framework-4

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

一个类是否可以从Entity Framework类继承并仍然使用继承的类映射保留回DB?

一个类是否可以从Entity Framework类继承并仍然使用继承的类映射保留回DB?当我尝试和SaveChanges声明Type没有任何映射时,我收到了试图从"自我跟踪实体"类派生的错误.我希望,因为Type是从Entity类继承的,它也可以以某种方式继承实体映射以使其工作.有没有人能够让这个工作?

我试图支持的场景是在另一个引用包含实体和映射的程序集的程序集中扩展Entity对象.部分类和映射将编译到包含Entity对象的程序集中.所以我不能通过使用部分类来实现这一点.

mapping inheritance entity-framework-4 self-tracking-entities

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

在C#中的代码中编写SQLdatasource以使用值后面的代码

我正在尝试使用基于参数化输入的SQL数据源填充数据表.棘手的是,参数化输入的值仅在后面的代码中可用,所以我被迫在页面代码中编写SQL数据源

我该怎么做(我使用的是C#和ASP.Net 4.0)

asp.net页面中创建sql数据源连接的当前代码是:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:LicensingConnectionString %>" 
        SelectCommand="SELECT * FROM [commissions] where username=@username "></asp:SqlDataSource>
Run Code Online (Sandbox Code Playgroud)

我希望在@username中使用的值在此代码后面的代码中检索

IPrincipal p = HttpContext.Current.User;
        // p.Identity.Name : this is what we will use to call the stored procedure to get the data and populate it
        string username = p.Identity.Name;
Run Code Online (Sandbox Code Playgroud)

谢谢 !

c# asp.net sqldatasource entity-framework-4

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

EF 4 - 使用timestamp列更新表时出现异常

我在SQL Server中创建了下表

CREATE TABLE [dbo].[Role](
   [Id] [int] IDENTITY(1,1) NOT NULL,
   [Name] [nvarchar](20) NOT NULL,
   [CreatedDate] [datetime] NULL,
   [TIMESTAMP] [timestamp] NOT NULL,
   [ModifiedDate] [datetime] NULL,

   CONSTRAINT [PK_TBL_ROLES] PRIMARY KEY CLUSTERED ([Id] ASC)
       WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, 
             ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY].
Run Code Online (Sandbox Code Playgroud)

使用EF,我创建了一个带有byte []类型的timestamp列的ste类,它是readonly.

我使用datacontext从我的数据库中检索一个对象,例如

var roleObject = roleService.getObject(id);
Run Code Online (Sandbox Code Playgroud)

现在我按如下方式更改角色名称

roleObject.Name = "New Name";
roleObject.ModifiedDate = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)

最后,我使用以下泛型方法调用我的存储库来持久保存对象

public void PersistUpdatedItem(T entity){
   _ctx.ApplyCurrentValues(typeof (T).Name, entity);
   _ctx.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
   _ctx.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

注意 …

.net c# entity-framework-4

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

实体框架4.1代码优先:通过服务层添加和更新记录

我正在使用Entity Framework 4.1 Code First和ASP.NET MVC 3.

我有一个服务类,在这个类中我调用我的存储库方法.

我添加了一个新的教程对象,我只是不知道如何更新记录.这是我对服务的插入和更新方法:

public class TutorialService : ITutorialService
{
   private ITutorialRepository tutorialRepository;

   public TutorialService(ITutorialRepository tutorialRepository)
   {
      this.tutorialRepository = tutorialRepository;
   }

   public void Insert(Tutorial tutorial)
   {
      tutorialRepository.Add(tutorial);
      tutorialRepository.Save();
   }

   public void Update(Tutorial tutorial)
   {
      // Not sure what the code looks like here to call the repo methods
   }
}
Run Code Online (Sandbox Code Playgroud)

我的存储库类:

public class TutorialRepository : ITutorialRepository
{
   PbeContext db = new PbeContext();

   public void Add(Tutorial tutorial)
   {
      db.Tutorials.Add(tutorial);
   }

   public void Save()
   {
      db.SaveChanges();
   } …
Run Code Online (Sandbox Code Playgroud)

entity-framework entity-framework-4 entity-framework-4.1 asp.net-mvc-3

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

Linq查询父子关系中的多个对象

我有这样的架构

包 - >列表 - >用户

所有'一对多'都在线下......

所以我想运行一个查询,我获得userID在用户中匹配的所有包.

var pck = (from pk in context.Package
             where pk.Lists[here's my problem]
Run Code Online (Sandbox Code Playgroud)

我假设这里的导航属性是:pk.Lists. *Users.UserId* == MyUserId但是我没有在列表级别看到导航属性.

我还没有得到像这样更复杂的EF查询.我环顾网络但没找到任何东西让它点击.我转向你堆叠.有人帮我看光!

编辑:再次感谢堆栈,我会尽我所能支付它!而且,所有这些答案都让我对ef4的力量有了启发!

c# linq entity-framework-4

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