danielovich danielovich - 12 days ago 6
C# Question

Value cannot be null. Parameter name: source

This is probably the biggest waste of time problem I have spent hours on solving for a long time.

var db = new hublisherEntities();
establishment_brands est = new establishment_brands();

est.brand_id = 1;
est.establishment_id = 1;
est.price = collection["price"];
est.size = collection["size"];

db.establishment_brands.Add(est);
db.SaveChanges();


This gives me an error of


Value cannot be null. Parameter name: source


stacktrace of


[ArgumentNullException: Value cannot be null. Parameter name: source]
System.Linq.Enumerable.Any(IEnumerable
1 source, Func
2 predicate)
+4083335 System.Data.Entity.Internal.InternalContext.WrapUpdateException(UpdateException
updateException) +87

System.Data.Entity.Internal.InternalContext.SaveChanges() +193

System.Data.Entity.Internal.LazyInternalContext.SaveChanges() +33

System.Data.Entity.DbContext.SaveChanges() +20 ... ...


I just want to add an entity to the table. The ORM is EF.

Answer

I had this one a while back, and the answer isn't necessarily what you'd expect. This error message often crops up when your connection string is wrong.

At a guess, you'll need something like this:

<connectionStrings>
    <add name="hublisherEntities" connectionString="Data Source=localhost;Initial Catalog=hublisher;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
        <parameters>
            <parameter value="Data Source=localhost;Initial Catalog=hublisher;Integrated Security=True" />
        </parameters>
    </defaultConnectionFactory>
</entityFramework>

What's happening is that it's looking for a data source in the wrong place; Entity Framework specifies it slightly differently. If you post your connection string and EF config then we can check.

Comments