‫۸ سال قبل، چهارشنبه ۱۷ شهریور ۱۳۹۵، ساعت ۲۳:۳۸
- نکته مهم: اگر از طریق management studio بانک اطلاعاتی مدنظر را باز کرده‌اید، برنامه امکان کارکردن با آن‌را جهت اعمال migrations ندارد. اتصال خودتان را قطع کنید و بعد امتحان کنید.
- در صفحه تعریف لاگین جدید در SQL Server روی دکمه‌ی جستجو کلیک نکنید. این کاربر را تشخیص نمی‌دهد. به همین نحوی که عنوان شده، آن‌را وارد کنید و تائید کنید؛ کار می‌کند.
- در این رشته‌ی اتصالی که نوشتید، به نظر یک «;» فراموش شده‌است:
Server=. Database=kashanSchools;Trusted_Connection=True;
بعد از دات، یک ; نیاز است.
- این رشته را هم امتحان کنید:
Data Source=(local);Initial Catalog=kashanSchools;Integrated Security = true
‫۸ سال قبل، چهارشنبه ۱۷ شهریور ۱۳۹۵، ساعت ۲۲:۴۸
- زمانیکه از Trusted_Connection=true استفاده می‌شود (در حالت Windows authentication)، مشخصات کاربر IIS Identity (همان کاربر Application Pool سایت) بجای تنظیمات دیگر استفاده خواهد شد.
- برای حل مشکل Login failed for user ALIPC\ali ،‌دقیقا باید به «همین کاربر» در تنظیمات امنیتی SQL Server، دسترسی‌های لازم را بدهید:
  management studio -> select server -> expand Security -> right click Logins ->  select "New Login..."
در قسمت security و Logins سرور، باید یک لاگین جدید را ایجاد کنید و در اینجا دقیقا همین نام ALIPC\ali را وارد کرده و ok کنید (این کاربر را جستجو نکنید؛ به همین نحو فقط آن‌را وارد کنید). تا اینجا مشکل login failed برطرف می‌شود. اما این لاگین جدید دسترسی خاصی را ندارد. بنابراین در مرحله‌ی بعد:
Right click on db-> properties -> permission -> View Server permission
در اینجا باید به خواص بانک اطلاعاتی مراجعه کرده و در لیست permissions آن، این کاربر جدید اضافه شده را یافته و به آن، دسترسی‌های لازم مانند db owner را داد.
یک نکته‌ی تکمیلی
اگر خواستید استراتژی آغازین DropCreateDatabaseAlways مربوط به EF 6.x را با EF Core شبیه سازی کنید، می‌توان یک چنین کدی را در سازنده‌ی کلاس Context نوشت (مفید برای انجام Integration Tests):
public class SampleDBContext : DbContext
{
    private static bool _created = false; 
    public SampleDBContext() 
    { 
        if (!_created) // DropCreateDatabaseAlways
        { 
            _created = true; 
            Database.EnsureDeleted(); 
            Database.EnsureCreated(); 
        } 
    }
‫۸ سال قبل، سه‌شنبه ۱۶ شهریور ۱۳۹۵، ساعت ۱۶:۰۳
لیست صفحه بندی شده‌ی تگ‌های مطلب اول
var post1Tags = context.BlogPosts
      .Where(blogPosts => blogPosts.Id == 1)
      .SelectMany(blogPosts => blogPosts.BlogPostsJoinTags)
      .Select(blogPostsJoinTags => blogPostsJoinTags.Tag)
      .Skip(0)
      .Take(10)
      .ToList();
با این خروجی SQL
SELECT   [blogPosts.BlogPostsJoinTags.Tag].[Id],
         [blogPosts.BlogPostsJoinTags.Tag].[Name]
FROM     [BlogPosts] AS [blogPosts]
         INNER JOIN
         [BlogPostsJoinTags] AS [blogPosts.BlogPostsJoinTags]
         ON [blogPosts].[Id] = [blogPosts.BlogPostsJoinTags].[BlogPostId]
         INNER JOIN
         [Tags] AS [blogPosts.BlogPostsJoinTags.Tag]
         ON [blogPosts.BlogPostsJoinTags].[TagId] = [blogPosts.BlogPostsJoinTags.Tag].[Id]
WHERE    [blogPosts].[Id] = 1
ORDER BY @@ROWCOUNT
OFFSET @__p_0 ROWS FETCH NEXT @__p_1 ROWS ONLY;
‫۸ سال و ۱ ماه قبل، دوشنبه ۱۵ شهریور ۱۳۹۵، ساعت ۰۰:۱۶
return File در ASP.NET Core، نیاز به مسیرنسبی فایل‌ها را از wwwroot دارد و نه مسیر مطلق و کامل آن‌ها را.
        private IFileProvider GetFileProvider(VirtualFileResult result)
        {
            if (result.FileProvider != null)
            {
                return result.FileProvider;
            }

            result.FileProvider = _hostingEnvironment.WebRootFileProvider;

            return result.FileProvider;
}
در اینجا تمام مسیرها نسبت به hostingEnvironment.WebRootFileProvider_ سنجیده می‌شوند. یعنی:
return File("~/foo.js","text/javascript")
به معنای دسترسی به فایل wwwroot/foo.js خواهد بود.
‫۸ سال و ۱ ماه قبل، یکشنبه ۱۴ شهریور ۱۳۹۵، ساعت ۲۰:۰۰
یک نکته‌ی تکمیلی
iTextSharp تا نگارش 4.6.1 آن با مجوز LGPL ارائه شد و پس از آن بود که مجوز آن به AGPL تجاری تغییر کرد. به همین جهت کسانیکه نمی‌خواهند از مجوز AGPL آن استفاده کنند، هنوز با نگارش 4.6.1 آن کار می‌کنند. کتابخانه‌ی iTextSharp.LGPLv2.Core حاصل انتقال کدهای این نگارش ویژه به NET Core. است.