Linq2SQL Counts Getting Cached?
Sep 23, 2009I've got a very simple data structure. I'm using SQLExpress with Linq2SQL and vb.net
**ParentClass**
parentId
name
[code].....
I've got a very simple data structure. I'm using SQLExpress with Linq2SQL and vb.net
**ParentClass**
parentId
name
[code].....
how to make linq2sql behave like my custom code used to, I want to check to make sure that it isn't already "built" in behavior that I can just use by setting up the relationships right in the designer...
Very simple example: I have two tables: Person and Notes, with a 1 to many relationship (1 Person, many notes), linked by Person.ID->Note.PersonID.
I have a stored procedure (all data access is done via SP's and I plan on continuing that) which makes the Link2SQL a bit more work for me.
sp_PersonGet(@ID int) which returns the person record and sp_PersonNotesGet(@PersonID) which returns a set of related notes for this person.So far so good, I have an object:
Dim myPerson As Person = db.PersonGet(pnID).Single
and I can access my fields: myPerson.Name, myPerson.Phone etc.and I can also do a
Dim myNotes As Notes = db.PersonNotesGet(pnID)
to get a set of notes and I can iterate thru this list like:
For Each N As Note In myNotes
( do something)
Next[code].....
Basically, Linq2SQl would need to call 2 stored procedures each time a Person record is created...Is this doable "out of the box", or is this something I need to code around for myself?
I have this one line property
Public ReadOnly Property DateToUniversal(ByVal dt As Nullable(Of Date)) As String
Get
Return If(dt.HasValue, dt.Value.ToString("u").Substring(0, 10), "")
[code].....
I want to use Linq2Sql as the data source for my Crystal reports. I have all my data in my domain objects in the form of Lists. The problem is all my domain model resides in a different namespace in the form of a .dll. And when i try to assign a data source for my report in Database Expert window, under .NET Objects, i can only see classes that are available in the current project and not from other projects in my solution, nor from other namespaces.
View 1 RepliesI set up a test harness by checking for and then deleting records added to the db in the previous testing session, and then I test my recording adding code by adding back the same records.Interestingly this code works fine when there is a break in the debugger, but fails with a "duplicate key" exception when I let it run with no breaks, which leads me to believe there is some kind of concurrency issue.The basic metacode is as follows:
DoTest()
dim j as datacontext
dim recs = from myrecs in j.mythings select myrecs where myrecs.key="key1" or
myrecs.key = "key2"
[code]....
I've confirmed that I'm properly deleted the previous added records, and this works fine as does adding the new records when I have a break in the code before I hit the add records step. but without the break, it throws duplicate key exceptions in the "addrecordestomytable" method suggesting that it hasn't grabbed the current version of the table when it creates the new data context in addrecordstomytable, even though the records should have already been deleted.I've tried refreshing the table, but this doesn't seem to work either.Note backing database is ms sql server 10?
I set up a test harness by checking for and then deleting records added to the db in the previous testing session, and then I test my recording adding code by adding back the same records.Interestingly this code works fine when there is a break in the debugger, but fails with a "duplicate key" exception when I let it run with no breaks, which leads me to believe there is some kind of concurrency issue
View 1 Replies[Code]...
How to create a LINQ query that allows the end user to choose a few months?
what is the most robust method for adding a empty row (to select "nothing") to a ListBox?
Dim List = Enumerable.Repeat(New TABLE With {.Text = "", .ID = -1}, 1).AsQueryable().Union(From t In mainctx.TABLEs)
ddlMangelKategorie.DisplayMember = "Text"
ddlMangelKategorie.ValueMember = "ID"
ddlMangelKategorie.DataSource = List.ToList
But this has some drawbacks:wordy must explicit write the Type (TABLE in this case), so i cant wrap this in a function have not found an solution, which works with anonymous types I.e. if I add a From t In mainctx.TABLEs Select Text=col1, id=col2 to the query, this method does not work anymore.
I know that the .Contains method on a hashset is fast. My question is what is the best method for getting the hashset data before repetitively using the .Contains method?
I can think of 2 options. Both of these examples would be called in a loop of undetermined length.
1) Call the method that returns the cached hashset directly and use the .Contains method.
IF (GetHashSetMethod.Contains("TESTVALUE") THEN BLAH, BLAH, BLAH...
2) Create a new hashset outside of the loop and load the cached hashset data into it so the method that returns the hashset is only called once, then use the .Contains method.
DIM HashTest AS HASHSET(OF String) = GetHashSetMethod
Then in loop:
if (HashTest.Contains("TESTVALUE") THEN BLAH, BLAH, BLAH...
I have been using method 1. Should I even think about switching to method 2? Is there a 3rd option I haven't even thought of? Does it even matter because the data is cached to begin with?
I have a rather large project that several developers access via MS SourceSafe. The issue at hand is the ToolBox lists many, thirty plus, items that start Cached.(the name that follows Cached is the name of a class or Cyrstal Report in the project. There are also many items listed, they have the same "gear" icon, without the word Cached prefix on the class name.
My question is, how can I get these items out of the ToolBox so they never come back?
Is the size of Lists cached in some way (calculated the first time you call it, and then retained untill some change is made to it), or does it get calculated every time you call the Count property? Same question for arrays.
View 11 RepliesI've been working on my own web browser for a few years now using the webbrowser control in VB.Net.The following routine allows me to pull images on a web page that are stored in the cache:
Private Function GetCachedURLPath(ByVal lpszUrl
As String)
As Boolean
[code]....
This routine has worked well for me, but there are some pages where it is unable to pull the image from the cache. What discovered is that when a web page host images on a different server than the page hosting server, the images get stored in the cache with the address from the image server instead of the src address listed in the IMG tag. Given that I am using the URL from the src in the IMG tag, the routine fails to provide a return path.In most instances reloading the page puts the image into the cache with the same address as the scr record. It was fairly easy to write a routine that automatically reloaded the page when I could not find the image in cache, but one of the things I want to address in my latest revision is this issue.
I have a routine that allows me to run through all of the URL's for the files stored in the internet cache and using that I can figure out the correct URL for a picture, but this seems to me to be about as cumbersome as reloading the page and can be time consuming if the page has a lot of images.I can cut down on the time if I modify the routine to only run through the list on exceptions, but this just seems inefficient to me, especially since I have to make an assumption about what part of the image URL's are the same. What I'd like to do is to track the sources of the images as the web page is being drawn so that I have a listing of all the real source URL's for the images instead of having to rely on what is referenced in the src attribute.
I have a DropDownList in MVC which grabs a SelectList initialized and populated by a controller. The goal of the specific page that said list resides on is to reply "You have selected option X" immediately to the user without refreshing (using Ajax).The problem I'm running into is that for some odd reason, while the dropdown renders properly and even posts back correctly, any attempts to add new options or modify previous response messages are in vain.
My View:
<script type="text/javascript" src="../../Scripts/MicrosoftAjax.js"></script>
<script type="text/javascript" src="../../Scripts/MicrosoftMvcAjax.js"></script>
[code].....
am working on an app that generates 2 random numbers. When the numbers match it plays a sound. I'm trying to keep count of each time this accurs by using a label to hold the number each time it counts. It's working but when I use a label it only counts up to 9 then goes back to one and stays there. Here is a snippet of the code I wrote.
Public Class Form1
Public int As Integer = 0
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
[Code].....
I have a asp.net web forms app that uses System.Web.Caching.Cache to cache xml data from a number of web services for 2 hours.
webCacheObj.Remove(dataCacheKey)
webCacheObj.Insert(dataCacheKey, dataToCache, Nothing, DateTime.Now.AddHours(2), Nothing)
Every 90 minutes a Microsoft Search Server hits a particular (spider) page which calls the code to put the objects into the cache.The issue i have is that over a period of time, the memory usage of the application grows exponentially. Lets say that in a week, the memory usage of the application pool grows to over 1gb
I have a relatively simple piece of code as follows:
Dim oShow As DataSet = Nothing
Dim cacheKey As String = String.Format("AsyncCacheFor_agenda_{0}", ShowID)
If Not IsNothing(Cache(cacheKey)) Then
[code].....
I need to go through a list of strings and count the number of duplicates and then print the string with the number of occurrences in one line to a file. Here is what I have but I need to only print the string once and its count.
[Code]...
I've used this method in the past and it's worked but I can't figure out what's different about the environment now that's stopping this from working.I have a string that I want to assign array values to. I dim it then I go to assign and I get "Object reference not set". [code] If I change it to the following it works but my UBound is too high for proceeding calculations and loops or too low to accept the total input I need it to take
View 4 Repliesusing Vb net (2005) Wandering if it is possible to use AppSettings in this case: Keeping counts how many time my Win Form app. has run, could someone show me if this can be done
View 4 RepliesI have set up text boxes to count how many times a certain item appears in my DataGridView but I want it to reset every time I click on a new index in a list box. How do I do it? Here is my code:
Dim myDict As New Dictionary(Of String, Interger)
Dim machineName As String
For Each row As DataGridView In grdTest.Rows
machineName = row.Cells("ProtosDataGridViewTextBoxColumn").Value.ToString()
If myDict.keys.Contains(machineName) Then
[Code]...
I have a List(of T) where T has a property that is a list of checkboxes, what I need is a Lambda expression that will count all the checked checkboxes in the list. I tried with:
[Code]...
I have a program I wrote that copies select files from one remote computer to another.
The set up I for testing is, one computer(a) at home running the program connected to my work's network via VPN and two computers(b,c) at work side by side on the same network. I am trying to copy the files on computer b to computer c, while the program is running on computer a.
The only thing wrong with this is, the files seem to be caching to a temp folder on computer a then going to computer c. When it should be going straight from computer b to computer c. Is there a way to keep the files from trying to cache on the computer running the app?
I have an ASP.NET project which is a front-end to a database. In addition to the large tables, the DB contains a few small tables to help normalize the larger tables with common values. I have a VB.NET project which loads the smaller tables into memory, using "Shared" (i.e., "static" in C#) member variables, and uses them. I have a call to load the tables in Global.asax - Application_Start. This works for a while. That is, Application_Start runs when I first run my project, loads the cached values, and will correctly keep them in memory for a while.
What I'm seeing (when running my project via Visual Studio 2008 Debugger, hosted locally) is:
A) The Application_Start code will run more than once. Not in a row, but after the user has navigated to some other pages, I'll see (my breakpoint in) another call to initialize the cache, coming form Application_Start. Is it expected?
B) The "Shared" variable that was set to True when the cache was initialized is now False again (which should only happen when the class is first loaded). Similarly, all the data that was chached is no longer present. That is, it looks like VB is unloading all the Shared members. Is this expected?
In an ASP.NET 3.5 VB web app, I successfully manage to cache an object containing several personal details such as name, address, etc. One of the items is CreditNum which I'd like to change in the cache on the fly. Is there a way to access this directly in the cache or do I have to destroy and rebuild the whole object just to change the value of objMemberDetails.CreditNum?The cache is set using:
Public Shared Sub CacheSet(ByVal key As String, ByVal value As Object)
Dim userID As String = HttpContext.Current.User.Identity.Name
HttpContext.Current.Cache(key & "_" & userID) = value
End Sub
i am caching objects, if i make linq queries on cached entities then... will theses queries make database round trip due to lazy loading in Entity framework?
View 1 RepliesThis has been driving me insane all day and I think I have the problem narrowed down, but it just doesn't make sense how it could be happening. I have 2 public shared functions and 2 private shared functions. One provides a list of custom objects and one filters the objects based on some parameters in the function call. Both return List(of custom object). The 2 private shared functions are the predicate functions used in the List(of t).RemoveAll function.
[Code]...
Now, the next time I call the GetItemList function it only returns 50 item objects, not the 100 item objects that it should be returning due to the cache being set! I have verified this in the debugger and by running many, many different tests to see what combinations of parameters may be causing the problem. In my testing, as soon as one of the .RemoveAll functions is used the GetItemList item list will get set to whatever the NarrowItemList function returned.
Even if the cache wasn't being set correctly, shouldn't it just get the data again from the database and return 100 items again? What could I be missing???
I'm writing a program which assists users update passwords for our windows systems and some other applications. Everything is working except when I call the UserPrincipal.Current.ChangePassword command cached credentials are not updated like they are when you change a password using the windows OS password change.
That is: when a remote user who is VPN'd in uses my application to change passwords, when they reboot and VPN is disconnected, they are forced to login to windows using there old password.
Is there a way I can force windows to update the cached credentials to the new password so upon reboot they are able to login using this new password?
Is there a way to work the web browser control for viewing off-line (Cached web pages) only? Is it possible to view cached web pages from IE9 on a web browser control off-line? The reason i am asking this question is because IE9 automatically switches from off-line mode to on-line mode when it cannot find something in the cache by default. For forensic purposes this is not acceptable for these reasons: Active content (Viruses, java script, activex cookies etc)
View 1 RepliesI need a code that counts the number of check boxes in a form this is my cod Public Class frmCount Dim counter As integer = 0 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
[Code]...
I have a stopwatch that counts down to zero from a random time set when the app loads. Now what I want to do is when that timer runs out and someone clicks reset it again is random rather than the same time as before. My code is
[Code]...