标签: objectset

为什么抛出NULL值异常?

由于某种原因,我在db.SaveChanges();指令中收到以下错误:

Cannot insert the value NULL into column 'UserId', table 'XXXXXXXXX_Dev.dbo.Portfolios'; column does not allow nulls. INSERT fails.
The statement has been terminated. 
Run Code Online (Sandbox Code Playgroud)

控制器代码:

[HttpPost]
[Authorize]
public ActionResult Create(Portfolio portfolio)
{
    if (ModelState.IsValid)
    {
        portfolio.UserId = (Guid)Membership.GetUser().ProviderUserKey;
        db.AddToPortfolios(portfolio);
        db.SaveChanges(); 
    }
    return View("MyPortfolios");
}
Run Code Online (Sandbox Code Playgroud)

我已经通过调试器并确认正在填充UserID.

更新:

我试图改变db.AddToPortfolios(portfolio);db.Portfolios.AddObject(portfolio);,但它仍然有同样的问题.

Portfolios是一个ObjectSet,我应该使用这个Attach()方法吗?

entity-framework-4 objectcontext objectset asp.net-mvc-3

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

如何创建ObjectSet的实例?

我正在我的项目中进行DAO单元测试,我在使用ObjectSet该类时遇到了问题.我必须创建一个新的,ObjectSet但为了做到这一点,我不能连接到数据库.所以我不能使用BusinessModelContainerCreateObjectSet()方法.有没有办法创造ObjectSet没有它?

单元测试代码如下:

var mock = new Mock<IBusinessModelContainerWrapper>();  
ObjectSet<Student> expectedStudent = ???;  // how can I get an instance here?
StudentDao studentDao = new StudentDao(mock.Object);  

expectedStudent.Add(someObj);  
mock.Setup(c => c.Students).Returns(expectedStudent);  

Assert.AreEqual(someObj, studentDao.GetByQuery(...));  
Run Code Online (Sandbox Code Playgroud)

c# unit-testing entity-framework objectset

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

通过在EF中指定范围从ObjectSet获取对象

我正在尝试EF 4.0.我有一个Employee对象并使用EF我只是通过调用获取Employee ObjectSet

Context.Employees

现在上面的调用将在sql查询后吐出 select * from Employees

上面的查询工作正常,我没有任何抱怨,但是你知道如果你在表中有数百万条记录就不会有足够的性能,它肯定会影响性能.

那么我试图想出一种方法来给我的ObjectSet一个范围,我可以说一些东西,比如从Employee ObjectSet中获取30到60个记录.

有没有办法做这样的事情.

任何建议都将深表感谢.

更新: 我正在尝试这样做,以便根据页面索引返回20个Employees(页面大小).

提前致谢.NIK ...

entity-framework range objectset

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

实体框架:ObjectSet及其(泛型)方差

我使用:EntityFramework + POCO

这是事情:

public interface IBaseType
{
    int Id { get; set; }
}

public class BaseType : IBaseType
{
    public virtual int Id { get; set; }
}

public class DerivedType : BaseType
{
}
Run Code Online (Sandbox Code Playgroud)

问题:

public class EntityFetcher<T> where T : BaseType
{
    public object GetById(int id)
    {
        ObjectSet<T> objectSet = (ObjectSet<T>)GetTheObjectSet(typeof(T)); 

        return objectSet.SingleOrDefault((o) => o.Id == id);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果TBaseType这一切完美的作品,但是:问题是,在当的EntityFramework一个类继承了另一个他们分享的ObjectSet,因此,如果TDerivedTypeGetTheObjectSet返回ObjectSet<BaseType>,不能被强制转换为ObjectSet<DerivedType>. …

.net entity-framework casting covariance objectset

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