ADO.NET :: Table Collection Missing In LINQ Query / DataContext?
Aug 13, 2010
I'm new to LINQ and have a problem with my query not showing me the Table Collection. I manually created my Cart class and specified the table attributes on each property (works fine for inserting records via LINQ see below). DataContext dc = new DataContext(Conn);
var q = (from c in dc.NOTABLES?? where ((c.UserID == userID)) orderby c.CreateDateTime Based on examples I would expect to see dc.Cart But I don't, so I tried to access it via dc.GetTable<Cart>() which at least gets me data but doesn't seem to convert the rows to my Cart object since this:
foreach (var cart in q) Log.Info("UserID: " + cart.UserID + " CartID: " + cart.ID.ToString());
blows up with a "Specified Cast is Not Valid" exception.
No Problem Inserting Also, I had no problem inserting data into the database:
DataContext dc = new DataContext(Conn);
Table<Cart> Carts = dc.GetTable<Cart>();
Cart aCart = new Cart();
aCart.UserID = userId;
aCart.Description = description;
aCart.CreateDateTime = System.DateTime.Now;
aCart.UpdateDateTime = System.DateTime.Now;
Carts.InsertOnSubmit(aCart);
Carts.Context.SubmitChanges();
I am trying to run a linq query but I need the result as a datatable as I am using that to store records from different queries in the same viewstate object.The 2 versions below compile, but return an empty set. The exact error is "Value cannot be null.Parameter name: source". (and yes I have checked there is data):
MyDatabaseDataContext db = new MyDatabaseDataContext(conn); IEnumerable<DataRow> queryProjects = (from DataRow p in db.STREAM_PROJECTs.AsEnumerable()
i am working on Linq,as we know to use any table in linq we have to drag and drop it on our datacontext's Designer File,and at run time we got its value,till here no any problem,main point is if any changes in respective data source's schema has made ,then on datacontext we will not get that changes,for it we have to change this datacontext manually by by again drag and drop,it will not happen implicitly when this changes has been made on the data source. how i solve this problem so that datacontext change implicitly without any over head using .net 3.5.
I'm constructing a query using linq, but I'm having trouble using a collection, i.e. where field in database = anything in the collection.
Below is an example of what I mean:
dim keywords as string ="test,test2,test3,cats,dogs,frogs" Dim getKeywords = (From cp In myDataContext.pages Where cp.pageKeywords = currentPageKeywords.Split(",")
The aim of the above code is to return all records where the "pageKeywords" field contains 1st keyword, or 2nd keyword, or 3rd keyword etc.
I want to access the data from datatable object. When i trying to get the fieldslist usng "Field" method. But I could not find the method with my table object. Eventhoguh i forcibly write a method and trying to access the fields, It is giving the below error for the first join in query. Rest of the lines are fine.
What is the reason behind it.
The errro: "Error 2 'LINQ2DB.SP_VS_OP' does not contain a definition for 'Field' and the best extension method overload 'System.Data.DataRowExtensions.Field<T>(System.Data.DataRow, string)' has some invalid arguments"
What is the meaningof the error. Shall i do any other changes in the query line?
var QueryChnl = from oSPOP in SPOP.AsEnumerable() join oDiscChannel in DiscChannel.AsEnumerable() on oSPOP.Field<int>("spid") equals oDiscChannel.Field<int>("SPID") join oChannel in Channel.AsEnumerable() on oDiscChannel.Field<int>("channel") equals oChannel.Field<int>("channelID") where oSPOP.Mappingkey == 3200004 select new { oSPOP.Mappingkey, oChannel.channel, oDiscChannel.STATUS };
I'm new to linq. here is the scenario i need to write query for.I have a "Candidate" table with a varchar property "Skill"I have the table OR-mapped with LINQ to SQL on dbml file. Now I want to write linq query that:Selects all Candidates that have skill containing any of the keywords from ("asp.net","php","java")
I'm trying to use linq to sql for my project (very short deadline), and I'm kind of in a bind. I don't know the best way to have a data context handy per request thread. I want something like a singleton class from which all my repository classes can access the current data context. However, singleton class is static and is not thread-safe and therefore not suitable for web apps. I want something that would create a data context at the beginning of the request and dispose of it along with the request
For no apparent reason (of course there must be one), my web project will no longer generate LINQ to SQL classes/data contexts!!!I am going about the usual routine of right clicking the project, adding new item, selected LINQ to SQL classes, then dragging over a table from Server Explorer, saving and build but no...the bloody thing won't appear!!!Does anyone know why this might be happening/what have I done wrong?
I have a table created on the fly. The table structure is dynamic.
This is the table structure generated by the end of year 2010
DealerCode, 201010, 201011, 201012
This is the table structure generated by the end of Jan 2011
DealerCode, 201011, 201012, 201101
What I need to do is selecting all data and then bind it into a gridview
To build a LINQ query, we need to drag the table into dbml file first. As we don't know how the table look like, can we add it in dynamically? Are there any other solutions?
I am writing a function in which i generate autocode in specific format i want to make this function generalize so that i send tablename and columnname parameter and function return the next code. I am using linq to sql with MVC e.g. i want to make table name and column name dyanamic
System.Data.Linq.ChangeConflictException: 2 of X updates failed. at System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode) at System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode) at PROJECT.Controllers.HomeController.ClickProc(Int32 id, String code, String n)
This is what I get very often. This action is done thousands of times a day, and I get this exception about once every 5 seconds. From what I understand it happens when something changes in the database in the period between creating DataContext and updating it. Am I right?How can I fix it?I just debugged the error and found the following:
[Code]....
The Stats table is updated constantly. So how can I still make LINQsave the changes. With "classical" MS SQL access through SqlDataCommand I never had problems like that.
I have a linq DataSource and a Grid in my htnl and I want to access the DataContext from code behind. Now in the past when I do evrything in code behind I just use...
DataContextName db = new DataContextName();
and I have my reference.
Now I can still do that and it works fine it just seems odd to be making a second class object when there is one that is made from the linq DataSource in the html. But I can't figure out how to get a reference to the DataContext that is created from my html code.
I am trying to return all records from a table using a Linq strongly typed datacontext. I want this in its own dll and accessible via a public method. I am basing this on the following MSDN example:
[URL]
I get no intellisense for appt in the Linq code and I also get a compile error for Table<Appointments>: The type or namespace name 'Appointments' could not be found (are you missing a using directive or an assembly reference?)
I have a basic Linq query and what I need to do is query the DB then display the data in HTML.Typically I would bind this to a control but in this instance I need to actually generate the HTML in the code behind page.The Linq query is very basic something like this with Northwind:[Code]....
Instead of binding that to a gridview how can I write out the html... I'm sure I can use stringbuilder or smilar to create the html but I'm not sure how to get he data in the tables... foreach datarow in?
I am writing an application in C# that uses LINQ to validate a datacontext off a textbox to see if the record exists already. If the record does exist I inserted an if statement to advise the user that the record exists, if the record does not exist I would like to allow the record to be added to the database. If I take out my else statement everything works fine as far as inserting goes, but I do not want to allow inserts in this scenario. I have tried moving the if and else statement to different parts of the code but can't quite figure this one out.
I need my linq to sql datacontext to be available across my business/data layer for all my repository objects to access. However since this is a web app, I want to create and destroy it per request. I'm wondering if having a singleton class that can lazily create and attach the datacontext to current HttpContext would work. My question is: would the datacontext get disposed automatically when the request ends? Below is the code for what I'm thinking. Would this accomplish my purpose: have a thread-safe datacontext instance that is lazily available and is automatically disposed when the request ends?
public class SingletonDC { public static NorthwindDataContext Default { get { NorthwindDataContext defaultInstance = (NorthwindDataContext)System.Web.HttpContext.Current.Items["datacontext"]; if (defaultInstance == null) { defaultInstance = new NorthwindDataContext(); System.Web.HttpContext.Current.Items.Add("datacontext", defaultInstance); } return defaultInstance; } } }
I have 2 Tables , OrderDetails and Requests In my LINQ to SQL dbml file. OrderDetailsID is a foreign key in Requests Table. I want to write the query to get the sum of UnitCost from OrderDetails based on OrderId. And If there is a row in Requests Table for each OrderDetailsID, and the Requests.Last.RequestType="Refund" I want to reduce the total refund amount from the main sum otherwise If there is no row based on OrderDetailsID, add to sum. Here is the way I implement that. I am looking to prevent using "For each".
iRefund = (From od1 In dc.OrderDetails _ Where od1.OrderID =1 _ Select od1.UnitCost).Sum Dim objOrderDetails = (From od1 In dc.OrderDetails _ Where od1.OrderID =1 _ Select od1) For Each OrderDetail As ORM.Entities.OrderDetail In objOrderDetails If Not OrderDetail.Requests Is Nothing Then IF OrderDetail.Requests.Last.RequestType="Refund" Then iRefund -= OrderDetail.UnitCost End If End If Next
I have a System.Data.Linq.DataContext object and need to know the proper way of closing it out before it goes out of scope in order to prevent the following error when making a bunch of database changes:
Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
Can I just call obj.Dispose() or do I need to call obj.Connection.Dispose() or obj.Connection.Close()?
I guess what I want to know is will calling obj.Dispose() end up executing the functionality in obj.Connection.Dispose() and obj.Connection.Close(). The MSDN documentation that I found on these functions does not have this information (at least I didn't see it - I could have mistakenly overlooked it).
I am trying to update my table ARTICLES and it has a field COUNTER, Everytime a user enter this ARTICLES, the page_load event runs a LINQ to SQL query taking the QueryString as parameter, increasing the COUNTER field in 1.
I have a strange problem. I am adding a LinqDatasource object, and set the context:
[Code]....
Then I get this error:The type 'System.Data.Linq.DataContext' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.