C# - Cannot Return Proper Model Into View When Doing A Join Linq Query
Mar 18, 2011
I have this code in my controller:
public ActionResult Index()
{
MembershipUser currentUser = Membership.GetUser();
Guid UserId = (Guid)currentUser.ProviderUserKey;
using (var db = new MatchGamingEntities())
{
var MyAccount = from m in db.Accounts..........
I want to be able to do a join query between my two tables Accounts and BankTransactions. This is a one to many relationship, there can be multiple BankTransactions per Account. I want to query this and display the account information including all the bank statements that are associated with it. I did a join in order to get it, but I am having trouble handling the model. I keep getting this error:
LINQ to Entities does not recognize the method 'System.Collections.Generic.List1[MatchGaming.Models.BankTransaction] ToList[BankTransaction](System.Collections.Generic.IEnumerable1[MatchGaming.Models.BankTransaction])' method, and this method cannot be translated into a store expression.
I want to get data from Projects(which have CourseId) and related CourseName from Courses table.
I have written following code:
var projects = from n in db.Projects join c in db.Courses on n.CourseId equals c.ID orderby n.Name select new { Project = n, Course = c }; return View(projects.ToList());
and I get error:
The model item passed into the dictionary is of type 'System.Collections.Generic.List1[<>f__AnonymousType22[ProjectManager.Models.Project,ProjectManager.Models.Course]]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[ProjectManager.Models.Project]'.
What I need to do in Controller and in View to display this data?
it is possible to customize the typed view generation process to generate the proper controls based on the fields annotations of a model. For Example I have a Person Model that contains Foreign Keys like CityID,DepartmentID etc. So When i generate a view againt the Person Model it creates textbox's for all the Person fields but i want dropdownlists against FK fields. It Should be smart enough to at least geereate the peroper controls based on the Person's field annotations. How can i acheive that? Has anybody worked on that?
We have two related tables (inventory, inventoryLocalization) and a t-sql query works on them as follows..
select inv.[code], coalesce(inL.name, inL2.name) as [name], coalesce(inL.description, inL2.description) as [description] from dbo.[inventory] inv left join dbo.[inventoryLocalization] inL on inv.code = inL.code and inL.language = 'de' left join dbo.[inventoryLocalization] inL2 on inv.code = inL2.code and inL2.language = 'en' where inv.[code] like '15.' + '%' order by inv.[code];
to performance improvement, we will try to use these tables from cache not from RDBMS directly. for an asp.net 4.0 project, by c#. We've took both tables to chache with a DataSet and we can reach both of them through that DataSet.
DataSet ds = UtilityCache.getCachedDataSet();
"ds.Tables[0]" is inventory Table and "ds.Tables[1]" is inventoryLocalization Table
But how can we convert above T-Sql syntax to linq2Sql. is it possible to use coalesce for select statement and to join on two tables with multiple conditions ?
I have added a linq to sql layer in my MVC 2 application.
This is the code I am using:
using (ProductPortalDataContext ctx = new ProductPortalDataContext()) { var Title = from aps in ProductPortal.Models.AppSettingsView[code]...
It says to be unable to find a quey model for AppSettings view and then says "where not found".
Tried googling, nothing came up. Tried searching here(first two pages) and nothing that seemed relevant popped up.But the best of all, created a new ASP.NET applicatio, imported the model using Linq to SQL and it compiled!Ok, I tried adding a button and a label to the asp.net application just to see if it would work... guess what? It doesn't!Still the same error message and I have *NO* clue what's wrong with it!
I'm trying to build a linq2Entity/gridview function for a forum, that draws data from multible tables.The result should be: Get the latest 10 threads that user(xx) has replyed in, that is not disabled or has a subject that is not allowed.Include information on the last post, thread owner user, and last post user, in each thread. ere is my code... is returns the correct threads and some that should not be there.
I am consuming an RSS feed to display on my website using a repeater control. I was wondering if it's possible in VB to return an anonymous type from my linq query rather than a collection of strongly typed RSSItems. I know this is possible in C#, however haven't been able to work out a VB equivalent.
To write a join query with or condition. It means a query has two inner join, here it is possible to fetch the records, if one inner join is true and other is false. I got a record when only two join conditions are true.
Curious what the best practice is for returning errors to a view from a controller where the error isn't really a validation error, but more like "user not found" or "service timeout" type of errors. (in ASP.NET MVC2 framework)
I've been adding them to the ModelState's model errors, but that doesn't seem appropriate. (although easy to implement and maintain)
Example - A user tries to log in, and their credentials do not match a known user.
For context: First of all, I am new to LINQ, as I have been using SubSonic for quite some time now.
I have two tables, Users, and Affiliates. They both have a very typical schema. The FK that joins them is the UserId field, which is in the Affiliates table. I want to create a LINQ query that pulls the Username from the Users table using the AffiliateId value. The AffiliateId is a primary key of the Affiliates table.
I have tried to accomplish this using many variations of the following code:
[Code]....
In the above query, I expect to get a single row result set. However, I instead receive the entire table of results.
How can I make this work? I have yet to see an example or article out there to do what I am trying to do.
I have a array list and am using like a database trying to search for ChildID and ParentID based on certain criteria.
My example below has the following keywords to search for:
Yellow, Mustard, Honey, Orange, Flame, Talisman
I also have a category volume value which I grab the first 2 characters to determine another filter.
My code isn't returning all matches with using 'Contains'. Right now it finds the 'Orange, Flame, Talisman'/AV record and returns 50, 28. My keywords also has 'Yellow, Mustard, Honey'/AV which should return 55 and 28 as well.
HTML Code: <%@ Page Language="VB" AutoEventWireup="false" CodeFile="temp2.aspx.vb" Inherits="temp2" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">
I am having an issue with a join statement. The join is based on the customer id in both databases, however, I just happen to have the exact same spelling for the email field which is contained in both the customer database and the office database. How do I display the proper email address. The email I am sending sends to the office email address rather than the customer address.
I am trying to fill a gridview with the data from Product table selecting few columns . I am using 3 - tier architecture and in DAL getproduct(userid) I am writing the query but cannot figure out exactly how to get that working .. here is piece of method I wrote
i just noticed that if my controller has a parameter with a name that matches the name of a field in my view model, and the view emits the value of the model's field, the value emitted is that passed in the query string, not the one set by the controller. is this by design?
here is what i mean:
my view model:
public class MyViewModel { int id; string name; [code]....
sending a request to "create?id=1234" emits "1234" in the hidden field instead of "1".
I used a query which returns some rows as result.. Querys is
var UserActivity = (from x in entity.user_activities oin p in entity.team_group_friends on x.activity_doer equals p.userid where p.userid == teamORGroupID select x).ToList().Take(5);
There is no error in query...But when i assisg the UserActivity to a view model ..
I have two tables: Projects and ProjectsData and I want to execute query with join and get the result in the View. In the Controller I have this code:
ViewBag.projectsData = (from pd in db.ProjectsData join p in db.Projects on pd.ProjectId equals p.ID where pd.UserName == this.HttpContext.User.Identity.Name orderby p.Name, p.ProjectNo select new { ProjectData = pd, Project = p });
What I should use in the View to extract this data. I tried that:
@foreach (var item in ViewBag.projectsData) { @item.pd.UserName }
public ActionResult Index() { MembershipUser currentUser = Membership.GetUser(); Guid UserId = (Guid)currentUser.ProviderUserKey; using (var db = new MatchGamingEntities()) {............
Currently my table "BankTransactions" could have multiple records in there with the same Account Id, so when I run this querry I get a more than one bank transaction related to a given accountid. I want to be able to print this into a view, but I am not sure how my var MyAccount is returning given that there are multiple BankTransactions. How would I transfer this model into the view and be able to iterate through all the bank transactions associated with an AccountId
Is this Possible? I cannot send it trought model becouse I am sending a list of Products which have a Type field. I don't know how to show in the List view Instead of Type id a Type name instead