.net inne

yield - deferred execution

http://jakubmaguza.pl/2017/05/o-odroczonej-egzekucji-yield-return/

http://jakubmaguza.pl/2017/05/lazy-loading-vs-deferred-execution/

public static IEnumerable<string> Deferred(string filepath)
    {
        using (StreamReader sr = new StreamReader(filepath))
        {
            string line;
            while ((line = sr.ReadLine()) != null)
            {
                yield return line;
            }
        }
    }

Source: http://jakubmaguza.pl/2017/05/o-odroczonej-egzekucji-yield-return/

Kategoria: 

IIS and WebDeploy and Management Service

It seems that when you install Web Deploy using the Web Platform Installer, not all features are available. So I went back to the download page but this time I select the x64 link instead of clicking on the big Install button.

Sources:

http://bartwullems.blogspot.com/2012/06/iis-management-service-delegatio...

Kategoria: 

Activator.CreateInstance

http://zajacmarek.com/2014/09/c-tips-stworz-obiekt-majac-nazwe-klasy/

ObjectHandle handle = Activator.CreateInstance("Books", "Book");
var book = (Book)handle.Unwrap();
Console.WriteLine(book.Pages);

Kategoria: 

entity update

[HttpPost]
public ActionResult Edit(Models.MathClass mathClassModel)
{
    //get current entry from db (db is context)
    var item = db.Entry<Models.MathClass>(mathClassModel);
 
    //change item state to modified
    item.State = System.Data.Entity.EntityState.Modified;
 
    //load existing items for ManyToMany collection
    item.Collection(i => i.Students).Load();
 
    //clear Student items          
    mathClassModel.Students.Clear();
 
    //add Toner items
    foreach (var studentId in mathClassModel.SelectedStudents)
    {
        var student = db.Student.Find(int.Parse(studentId));
        mathClassModel.Students.Add(student);
    }                
 
    if (ModelState.IsValid)
    {
       db.SaveChanges();
       return RedirectToAction("Index");
    }
 
    return View(mathClassModel);
}
Kategoria: 

Mamy to Many Entity

source:
http://stackoverflow.com/questions/7050404/create-code-first-many-to-many-with-additional-fields-in-association-table

public class Member
{
    public int MemberID { get; set; }
 
    public string FirstName { get; set; }
    public string LastName { get; set; }
 
    public virtual ICollection<MemberComment> MemberComments { get; set; }
}
 
public class Comment
{
    public int CommentID { get; set; }
    public string Message { get; set; }
 
    public virtual ICollection<MemberComment> MemberComments { get; set; }
}
 
public class MemberComment
{
    [Key, Column(Order = 0)]
    public int MemberID { get; set; }
    [Key, Column(Order = 1)]
    public int CommentID { get; set; }
 
    public virtual Member Member { get; set; }
    public virtual Comment Comment { get; set; }
 
    public int Something { get; set; }
    public string SomethingElse { get; set; }
}

var commentsOfMembers = context.Members
    .Where(m => m.LastName == "Smith")
    .SelectMany(m => m.MemberComments.Select(mc => mc.Comment))
    .ToList();

var commentsOfMembers = context.MemberComments
    .Where(mc => mc.Member.LastName == "Smith")
    .Select(mc => mc.Comment)
    .ToList();

var membersWithComments = context.Members
    .Where(m => m.LastName == "Smith")
    .Select(m => new
    {
        Member = m,
        Comments = m.MemberComments.Select(mc => mc.Comment)
    })
    .ToList();

var commentsOfMember = context.MemberComments
    .Where(mc => mc.MemberId == 1)
    .Select(mc => mc.Comment)
    .ToList();

var filteredCommentsOfMember = context.MemberComments
    .Where(mc => mc.MemberId == 1 && mc.Something == 99)
    .Select(mc => mc.Comment)
    .ToList();

var member1 = new Member { FirstName = "Pete" };
var comment1 = new Comment { Message = "Good morning!" };
var comment2 = new Comment { Message = "Good evening!" };
var memberComment1 = new MemberComment { Member = member1, Comment = comment1,
                                         Something = 101 };
var memberComment2 = new MemberComment { Member = member1, Comment = comment2,
                                         Something = 102 };
 
context.MemberComments.Add(memberComment1); // will also add member1 and comment1
context.MemberComments.Add(memberComment2); // will also add comment2
 
context.SaveChanges();

var member1 = context.Members.Where(m => m.FirstName == "Pete")
    .SingleOrDefault();
if (member1 != null)
{
    var comment3 = new Comment { Message = "Good night!" };
    var memberComment3 = new MemberComment { Member = member1,
                                             Comment = comment3,
                                             Something = 103 };
 
    context.MemberComments.Add(memberComment3); // will also add comment3
    context.SaveChanges();
}

var comment2 = context.Comments.Where(c => c.Message == "Good evening!")
    .SingleOrDefault();
if (comment2 != null)
{
    var member2 = new Member { FirstName = "Paul" };
    var memberComment4 = new MemberComment { Member = member2,
                                             Comment = comment2,
                                             Something = 201 };
 
    context.MemberComments.Add(memberComment4);
    context.SaveChanges();
}

var member2 = context.Members.Where(m => m.FirstName == "Paul")
    .SingleOrDefault();
var comment3 = context.Comments.Where(c => c.Message == "Good night!")
    .SingleOrDefault();
if (member2 != null && comment3 != null)
{
    var memberComment5 = new MemberComment { Member = member2,
                                             Comment = comment3,
                                             Something = 202 };
 
    context.MemberComments.Add(memberComment5);
    context.SaveChanges();
}

var memberComment5 = context.MemberComments
    .Where(mc => mc.Member.FirstName == "Paul"
        && mc.Comment.Message == "Good night!")
    .SingleOrDefault();
if (memberComment5 != null)
{
    context.MemberComments.Remove(memberComment5);
    context.SaveChanges();
}

var member1 = context.Members.Where(m => m.FirstName == "Pete")
    .SingleOrDefault();
if (member1 != null)
{
    context.Members.Remove(member1);
    context.SaveChanges();
}
Kategoria: 

Enable Migrations

1.
Enable-Migrations -EnableAutomaticMigrations -ProjectName db -StartupProjectName MysqlEntitiesOne

2.
to Migration class in contructor
Add
SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());

3.
add-migration initial -ProjectName db

(if error, add

[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
public class SwitchLogContent : DbContext

)

4.
update-database -ProjectName db

5. Remove-Migration

Kategoria: 

Strony

Subskrybuj .net inne